From df80f70cecad0b7462466ea55bfe74cc1344a05d Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Mon, 20 Feb 2023 17:09:13 +0000 Subject: [PATCH 01/37] Updates for OpenFaaS IAM Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- .gitignore | 1 + chart/openfaas/templates/controller-rbac.yaml | 2 + chart/openfaas/templates/gateway-dep.yaml | 50 ++++++++++++++----- chart/openfaas/templates/gateway-svc.yaml | 4 ++ chart/openfaas/templates/oidc-plugin-dep.yaml | 17 ++++--- chart/openfaas/values-pro.yaml | 38 +++++++++++--- yaml/controller-rbac.yml | 1 + yaml/gateway-dep.yml | 1 + 8 files changed, 88 insertions(+), 26 deletions(-) diff --git a/.gitignore b/.gitignore index dac32b15d..53e83ca09 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,4 @@ of_kind_portforward.pid jwt_key jwt_key.pub /*.pid +*.txt diff --git a/chart/openfaas/templates/controller-rbac.yaml b/chart/openfaas/templates/controller-rbac.yaml index 81008bf11..07be4b0c3 100644 --- a/chart/openfaas/templates/controller-rbac.yaml +++ b/chart/openfaas/templates/controller-rbac.yaml @@ -77,6 +77,7 @@ rules: - "openfaas.com" resources: - "profiles" + - "policies" verbs: - "get" - "list" @@ -198,6 +199,7 @@ rules: - "openfaas.com" resources: - "profiles" + - "policies" verbs: - "get" - "list" diff --git a/chart/openfaas/templates/gateway-dep.yaml b/chart/openfaas/templates/gateway-dep.yaml index d97c5d85c..dd5a3b5bc 100644 --- a/chart/openfaas/templates/gateway-dep.yaml +++ b/chart/openfaas/templates/gateway-dep.yaml @@ -31,6 +31,13 @@ spec: serviceAccountName: {{ .Release.Name }}-controller {{- end }} volumes: + # - name: faas-auth + # projected: + # sources: + # - serviceAccountToken: + # path: token + # audience: faas-netes.openfaas + # expirationSeconds: 3600 - name: faas-netes-temp-volume emptyDir: {} {{- if .Values.basic_auth }} @@ -43,6 +50,7 @@ spec: secret: secretName: openfaas-license {{- end }} + terminationGracePeriodSeconds: 1 containers: - name: gateway resources: @@ -158,19 +166,13 @@ spec: value: "true" - name: secret_mount_path value: "/var/secrets" - {{- if .Values.oidcAuthPlugin.enabled }} + {{- end }} + {{- if .Values.gateway.authProxyUrl }} - name: auth_proxy_url - value: "http://oidc-plugin.{{ .Release.Namespace }}:8080/validate" - - name: auth_pass_body - value: "false" - {{- else }} - {{- if .Values.openfaasPro }} + value: "{{.Values.gateway.authProxyUrl}}" + {{- else if .Values.oidcAuthPlugin.enabled }} - name: auth_proxy_url - value: "http://basic-auth-plugin.{{ .Release.Namespace }}:8080/validate" - - name: auth_pass_body - value: "false" - {{- end }} - {{- end }} + value: "http://oidc-plugin.{{ .Release.Namespace }}:8080" {{- end }} - name: scale_from_zero value: "{{ .Values.gateway.scaleFromZero }}" @@ -181,6 +183,8 @@ spec: - name: probe_functions value: "{{ .Values.gateway.probeFunctions }}" volumeMounts: + # - name: faas-auth + # mountPath: /var/run/secrets/faas-auth {{- if .Values.basic_auth }} - name: auth readOnly: true @@ -242,15 +246,26 @@ spec: value: "{{ .Values.faasnetes.livenessProbe.periodSeconds }}" - name: cluster_role value: "{{ .Values.clusterRole }}" + {{- if .Values.basic_auth }} + - name: basic_auth + value: "true" + - name: secret_mount_path + value: "/var/secrets" + {{- end }} ports: - containerPort: 8081 protocol: TCP - {{- if .Values.openfaasPro }} volumeMounts: + {{- if .Values.openfaasPro }} - name: license readOnly: true mountPath: "/var/secrets/license" {{- end }} + {{- if .Values.basic_auth }} + - name: auth + readOnly: true + mountPath: "/var/secrets" + {{- end }} {{- else }} - name: faas-netes @@ -304,12 +319,23 @@ spec: value: "{{ .Values.faasnetes.livenessProbe.periodSeconds }}" - name: cluster_role value: "{{ .Values.clusterRole }}" + {{- if .Values.basic_auth }} + - name: basic_auth + value: "true" + - name: secret_mount_path + value: "/var/secrets" + {{- end }} volumeMounts: {{- if .Values.openfaasPro }} - name: license readOnly: true mountPath: "/var/secrets/license" {{- end }} + {{- if .Values.basic_auth }} + - name: auth + readOnly: true + mountPath: "/var/secrets" + {{- end }} - mountPath: /tmp name: faas-netes-temp-volume ports: diff --git a/chart/openfaas/templates/gateway-svc.yaml b/chart/openfaas/templates/gateway-svc.yaml index 16ab7a9f9..9853f9836 100644 --- a/chart/openfaas/templates/gateway-svc.yaml +++ b/chart/openfaas/templates/gateway-svc.yaml @@ -16,5 +16,9 @@ spec: port: 8080 targetPort: http protocol: TCP + - name: provider + port: 8081 + targetPort: http + protocol: TCP selector: app: gateway diff --git a/chart/openfaas/templates/oidc-plugin-dep.yaml b/chart/openfaas/templates/oidc-plugin-dep.yaml index ec5211d89..a9f5a11f4 100644 --- a/chart/openfaas/templates/oidc-plugin-dep.yaml +++ b/chart/openfaas/templates/oidc-plugin-dep.yaml @@ -28,6 +28,9 @@ spec: volumes: - name: oidc-plugin-temp-volume emptyDir: {} + - name: issuer-key + secret: + secretName: issuer-key {{- if .Values.basic_auth }} - name: auth secret: @@ -86,12 +89,6 @@ spec: {{- end }} - "-provider={{- .Values.oidcAuthPlugin.provider}}" env: - - name: client_id - value: "{{- .Values.oidcAuthPlugin.clientID}}" - - name: client_secret - value: "{{- .Values.oidcAuthPlugin.clientSecret}}" - - name: cookie_domain - value: "{{- .Values.oidcAuthPlugin.cookieDomain}}" - name: base_host value: "{{- .Values.oidcAuthPlugin.baseHost}}" - name: port @@ -104,10 +101,11 @@ spec: value: "" - name: audience value: "{{- .Values.oidcAuthPlugin.audience}}" - - name: scopes - value: "{{- .Values.oidcAuthPlugin.scopes}}" + - name: insecure_tls value: "{{- .Values.oidcAuthPlugin.insecureTLS}}" + - name: issuer_key_path + value: "/var/secrets/issuer-key/issuer.key" {{- if .Values.basic_auth }} - name: secret_mount_path value: "/var/secrets/gateway" @@ -115,6 +113,9 @@ spec: volumeMounts: - name: oidc-plugin-temp-volume mountPath: /tmp + - name: issuer-key + readOnly: true + mountPath: "/var/secrets/issuer-key" {{- if .Values.basic_auth }} - name: auth readOnly: true diff --git a/chart/openfaas/values-pro.yaml b/chart/openfaas/values-pro.yaml index 1df2168ed..c81ec9f4b 100644 --- a/chart/openfaas/values-pro.yaml +++ b/chart/openfaas/values-pro.yaml @@ -10,7 +10,7 @@ openfaasPro: true # The operator mode is required for GitOps tooling like ArgoCD / Flux v2 # and to export existing functions for backup purposes. operator: - create: true + create: false # Enable authentication on all OpenFaaS core components. # You must not turn off basic_auth for the chart, however, you can pre-create the @@ -22,13 +22,13 @@ generateBasicAuth: true # for setting up the new dashboard dashboard: publicURL: localhost - enabled: true + enabled: false # The autoscaler is enabled by default # Learn more: # https://docs.openfaas.com/architecture/autoscaling/ autoscaler: - enabled: true + enabled: false # A cluster role is required for OpenFaaS Pro due to: # 1) Autoscaling and metrics for functions - CPU / RAM @@ -36,12 +36,21 @@ autoscaler: # https://docs.openfaas.com/reference/namespaces/ clusterRole: true +faasnetesPro: + image: ttl.sh/alexellis2/faas-netes-pro:r2 + + # HPA CPU? 3 <=> 6 # If you have purchased licenses for 6 gateway replicas for this environment # you can create a HPA rule to scale on CPU, but you must not scale beyond # what's been purchased. gateway: - replicas: 3 + replicas: 1 + authProxyUrl: "https://auth.exit.o6s.io" + +gatewayPro: + image: ttl.sh/alexellis2/gateway:0.2.13-10-gc48b60ed + # Required gateway configuration for Istio # directFunctions: true # probeFunctions: true @@ -49,10 +58,16 @@ gateway: # replicas x maxInflight = max concurrent messages processed. # 75 concurrent requests will be processed, 25 per queueWorker queueWorker: - replicas: 3 + replicas: 0 + + +openfaasImagePullPolicy: IfNotPresent +faasnetes: + imagePullPolicy: IfNotPresent queueWorkerPro: - maxInflight: 50 + maxInflight: 1 + replicas: 0 # Enable JetStream for OpenFaaS, learn more at: # https://www.openfaas.com/blog/jetstream-for-openfaas/ @@ -66,3 +81,14 @@ nats: # For timeouts longer than 60 seconds see: # https://docs.openfaas.com/tutorials/expanded-timeouts/ + + +oidcAuthPlugin: + enabled: true + verbose: true # debug setting + openidURL: "https://alexellis.eu.auth0.com/.well-known/openid-configuration" + audience: https://alexellis.eu.auth0.com/api/v2/ + baseHost: "https://gw.exit.o6s.io" + image: ttl.sh/alexellis/openfaas-oidc-plugin:0.5.5-10-g269b915-dirty + + diff --git a/yaml/controller-rbac.yml b/yaml/controller-rbac.yml index ef73ab00b..0147b98a8 100644 --- a/yaml/controller-rbac.yml +++ b/yaml/controller-rbac.yml @@ -77,6 +77,7 @@ rules: - "openfaas.com" resources: - "profiles" + - "policies" verbs: - "get" - "list" diff --git a/yaml/gateway-dep.yml b/yaml/gateway-dep.yml index fee2c5a07..95806ac1e 100644 --- a/yaml/gateway-dep.yml +++ b/yaml/gateway-dep.yml @@ -27,6 +27,7 @@ spec: - name: auth secret: secretName: basic-auth + terminationGracePeriodSeconds: 1 containers: - name: gateway resources: From 821f778375d15289c385cf5cf401d68aff465eb4 Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Fri, 24 Mar 2023 17:57:45 +0000 Subject: [PATCH 02/37] Update temporary images Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- chart/openfaas/templates/gateway-svc.yaml | 4 ++-- chart/openfaas/values-pro.yaml | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/chart/openfaas/templates/gateway-svc.yaml b/chart/openfaas/templates/gateway-svc.yaml index 9853f9836..fe5779397 100644 --- a/chart/openfaas/templates/gateway-svc.yaml +++ b/chart/openfaas/templates/gateway-svc.yaml @@ -14,11 +14,11 @@ spec: ports: - name: http port: 8080 - targetPort: http + targetPort: 8080 protocol: TCP - name: provider port: 8081 - targetPort: http + targetPort: 8081 protocol: TCP selector: app: gateway diff --git a/chart/openfaas/values-pro.yaml b/chart/openfaas/values-pro.yaml index c81ec9f4b..7c3108e87 100644 --- a/chart/openfaas/values-pro.yaml +++ b/chart/openfaas/values-pro.yaml @@ -37,8 +37,7 @@ autoscaler: clusterRole: true faasnetesPro: - image: ttl.sh/alexellis2/faas-netes-pro:r2 - + image: ttl.sh/alexellis2/faas-netes-pro:0.1.3-54-g024703f9-dirty # HPA CPU? 3 <=> 6 # If you have purchased licenses for 6 gateway replicas for this environment @@ -49,7 +48,7 @@ gateway: authProxyUrl: "https://auth.exit.o6s.io" gatewayPro: - image: ttl.sh/alexellis2/gateway:0.2.13-10-gc48b60ed + image: ttl.sh/alexellis2/gateway:0.2.13-10-gc48b60ed-dirty # Required gateway configuration for Istio # directFunctions: true @@ -84,7 +83,7 @@ nats: oidcAuthPlugin: - enabled: true + enabled: false verbose: true # debug setting openidURL: "https://alexellis.eu.auth0.com/.well-known/openid-configuration" audience: https://alexellis.eu.auth0.com/api/v2/ From e9aa783c389d568af40c24b0f179f15881d1fbd0 Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Fri, 24 Mar 2023 18:40:42 +0000 Subject: [PATCH 03/37] Update GW version Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- chart/openfaas/values-pro.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chart/openfaas/values-pro.yaml b/chart/openfaas/values-pro.yaml index 7c3108e87..f543a301b 100644 --- a/chart/openfaas/values-pro.yaml +++ b/chart/openfaas/values-pro.yaml @@ -37,7 +37,7 @@ autoscaler: clusterRole: true faasnetesPro: - image: ttl.sh/alexellis2/faas-netes-pro:0.1.3-54-g024703f9-dirty + image: ttl.sh/alexellis2/faas-netes-pro:0.1.3-56-g08511400 # HPA CPU? 3 <=> 6 # If you have purchased licenses for 6 gateway replicas for this environment @@ -48,7 +48,7 @@ gateway: authProxyUrl: "https://auth.exit.o6s.io" gatewayPro: - image: ttl.sh/alexellis2/gateway:0.2.13-10-gc48b60ed-dirty + image: ttl.sh/alexellis2/gateway:0.2.13-11-gef3bf5c0 # Required gateway configuration for Istio # directFunctions: true From 6375880d00e5695add9b5676077f728b37b92482 Mon Sep 17 00:00:00 2001 From: "Han Verstraete (OpenFaaS Ltd)" Date: Mon, 27 Mar 2023 10:47:43 +0200 Subject: [PATCH 04/37] Rename openid_url env variable The openid_url env variable was renamed to openid_issuer on the oidc-plugin. Signed-off-by: Han Verstraete (OpenFaaS Ltd) --- chart/openfaas/templates/oidc-plugin-dep.yaml | 4 ++-- chart/openfaas/values-pro.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/chart/openfaas/templates/oidc-plugin-dep.yaml b/chart/openfaas/templates/oidc-plugin-dep.yaml index a9f5a11f4..d76389df4 100644 --- a/chart/openfaas/templates/oidc-plugin-dep.yaml +++ b/chart/openfaas/templates/oidc-plugin-dep.yaml @@ -93,8 +93,8 @@ spec: value: "{{- .Values.oidcAuthPlugin.baseHost}}" - name: port value: "8080" - - name: openid_url - value: "{{- .Values.oidcAuthPlugin.openidURL}}" + - name: openid_issuer + value: "{{- .Values.oidcAuthPlugin.openidIssuer}}" - name: welcome_page_url value: "{{- .Values.oidcAuthPlugin.welcomePageURL}}" - name: public_key_path diff --git a/chart/openfaas/values-pro.yaml b/chart/openfaas/values-pro.yaml index f543a301b..3065510af 100644 --- a/chart/openfaas/values-pro.yaml +++ b/chart/openfaas/values-pro.yaml @@ -85,7 +85,7 @@ nats: oidcAuthPlugin: enabled: false verbose: true # debug setting - openidURL: "https://alexellis.eu.auth0.com/.well-known/openid-configuration" + openidIssuer: "https://alexellis.eu.auth0.com/.well-known/openid-configuration" audience: https://alexellis.eu.auth0.com/api/v2/ baseHost: "https://gw.exit.o6s.io" image: ttl.sh/alexellis/openfaas-oidc-plugin:0.5.5-10-g269b915-dirty From cf96d4f8d6c7224464edc59ce2b95f3e8f8fa155 Mon Sep 17 00:00:00 2001 From: "Han Verstraete (OpenFaaS Ltd)" Date: Mon, 27 Mar 2023 10:48:17 +0200 Subject: [PATCH 05/37] Add oidc-plugin RBAC Add a ServiceAccount and ClusterRole required by the oics-plugin to listen for changes on IAM objects. Signed-off-by: Han Verstraete (OpenFaaS Ltd) --- chart/openfaas/templates/oidc-plugin-dep.yaml | 1 + .../openfaas/templates/oidc-plugin-rbac.yaml | 49 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 chart/openfaas/templates/oidc-plugin-rbac.yaml diff --git a/chart/openfaas/templates/oidc-plugin-dep.yaml b/chart/openfaas/templates/oidc-plugin-dep.yaml index d76389df4..f2fda2f31 100644 --- a/chart/openfaas/templates/oidc-plugin-dep.yaml +++ b/chart/openfaas/templates/oidc-plugin-dep.yaml @@ -25,6 +25,7 @@ spec: labels: app: oidc-plugin spec: + serviceAccountName: oidc-plugin volumes: - name: oidc-plugin-temp-volume emptyDir: {} diff --git a/chart/openfaas/templates/oidc-plugin-rbac.yaml b/chart/openfaas/templates/oidc-plugin-rbac.yaml new file mode 100644 index 000000000..efbaf6702 --- /dev/null +++ b/chart/openfaas/templates/oidc-plugin-rbac.yaml @@ -0,0 +1,49 @@ +{{- if .Values.oidcAuthPlugin.enabled }} +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app: {{ template "openfaas.name" . }} + component: oidc-plugin + name: oidc-plugin + namespace: "openfaas" +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: {{ template "openfaas.name" . }} + component: oidc-plugin + name: openfaas-roles + namespace: "openfaas" +rules: + - apiGroups: + - "openfaas.com" + resources: + - "profiles" + - "jwtissuers" + - "policies" + - "roles" + verbs: + - "get" + - "list" + - "watch" +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app: {{ template "openfaas.name" . }} + component: oidc-plugin + name: oidc-plugin + namespace: "openfaas" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: openfaas-roles +subjects: + - kind: ServiceAccount + name: oidc-plugin + namespace: "openfaas" +{{- end }} \ No newline at end of file From 4ee27708683581f321cdb4108684644d6e42da67 Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Mon, 27 Mar 2023 15:40:36 +0100 Subject: [PATCH 06/37] Add primary and system issuer template Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- chart/openfaas/templates/gateway-dep.yaml | 8 +-- chart/openfaas/templates/oidc-plugin-dep.yaml | 2 +- .../openfaas/templates/system-jwtissuer.yaml | 16 ++++++ chart/openfaas/values-pro.yaml | 57 ++++++++++--------- 4 files changed, 52 insertions(+), 31 deletions(-) create mode 100644 chart/openfaas/templates/system-jwtissuer.yaml diff --git a/chart/openfaas/templates/gateway-dep.yaml b/chart/openfaas/templates/gateway-dep.yaml index dd5a3b5bc..deef8a42d 100644 --- a/chart/openfaas/templates/gateway-dep.yaml +++ b/chart/openfaas/templates/gateway-dep.yaml @@ -203,11 +203,7 @@ spec: - name: operator resources: {{- .Values.operator.resources | toYaml | nindent 12 }} - {{- if .Values.openfaasPro }} image: {{ .Values.operatorPro.image }} - {{- else }} - image: {{ .Values.operator.image }} - {{- end }} imagePullPolicy: {{ .Values.openfaasImagePullPolicy }} command: - ./faas-netes @@ -319,6 +315,10 @@ spec: value: "{{ .Values.faasnetes.livenessProbe.periodSeconds }}" - name: cluster_role value: "{{ .Values.clusterRole }}" + {{- if .Values.oidcAuthPlugin.enabled }} + - name: system_issuer + value: {{ .Values.iam.systemIssuer | quote }} + {{- end }} {{- if .Values.basic_auth }} - name: basic_auth value: "true" diff --git a/chart/openfaas/templates/oidc-plugin-dep.yaml b/chart/openfaas/templates/oidc-plugin-dep.yaml index f2fda2f31..25d46dd3b 100644 --- a/chart/openfaas/templates/oidc-plugin-dep.yaml +++ b/chart/openfaas/templates/oidc-plugin-dep.yaml @@ -95,7 +95,7 @@ spec: - name: port value: "8080" - name: openid_issuer - value: "{{- .Values.oidcAuthPlugin.openidIssuer}}" + value: "{{- .Values.iam.primaryIssuer}}" - name: welcome_page_url value: "{{- .Values.oidcAuthPlugin.welcomePageURL}}" - name: public_key_path diff --git a/chart/openfaas/templates/system-jwtissuer.yaml b/chart/openfaas/templates/system-jwtissuer.yaml new file mode 100644 index 000000000..e66c0036e --- /dev/null +++ b/chart/openfaas/templates/system-jwtissuer.yaml @@ -0,0 +1,16 @@ +{{- if .Values.oidcAuthPlugin.enabled }} +--- + +apiVersion: openfaas.com/v1 +kind: JwtIssuer +metadata: + name: system + namespace: openfaas +spec: + iss: {{.Values.iam.systemIssuer}} + issInternal: http://oidc-plugin.{{ .Release.Namespace | quote }}:8080 + aud: + - {{.Values.iam.systemIssuer}} + tokenExpiry: "30m" + +{{- end }} diff --git a/chart/openfaas/values-pro.yaml b/chart/openfaas/values-pro.yaml index 3065510af..166547fb1 100644 --- a/chart/openfaas/values-pro.yaml +++ b/chart/openfaas/values-pro.yaml @@ -1,6 +1,37 @@ # Suggested additional overrides for OpenFaaS Pro users, # in addition to (not instead of) values.yaml +faasnetesPro: + image: ttl.sh/alexellis/faas-netes:0.1.3-56-g08511400-dirty + +# HPA CPU? 3 <=> 6 +# If you have purchased licenses for 6 gateway replicas for this environment +# you can create a HPA rule to scale on CPU, but you must not scale beyond +# what's been purchased. +gateway: + replicas: 1 + # authProxyUrl: "https://auth.exit.o6s.io" + +gatewayPro: + image: ttl.sh/alexellis2/gateway:0.2.13-11-gef3bf5c0 + + +iam: + # The primary issuer represents how users log into the OpenFaaS dashboard and via the CLI + primaryIssuer: "https://alexellis.eu.auth0.com/" + + # systemIssuer represents the issuer for the OpenFaaS system components + systemIssuer: "https://gw.exit.o6s.io" + +oidcAuthPlugin: + enabled: true + audience: https://alexellis.eu.auth0.com/api/v2/ + image: ttl.sh/alexellis/openfaas-oidc-plugin:0.5.5-10-g269b915-dirty + + +# ==================================================================================================== + + # Initial configuration to set Pro configurations on openfaasPro: true @@ -36,19 +67,6 @@ autoscaler: # https://docs.openfaas.com/reference/namespaces/ clusterRole: true -faasnetesPro: - image: ttl.sh/alexellis2/faas-netes-pro:0.1.3-56-g08511400 - -# HPA CPU? 3 <=> 6 -# If you have purchased licenses for 6 gateway replicas for this environment -# you can create a HPA rule to scale on CPU, but you must not scale beyond -# what's been purchased. -gateway: - replicas: 1 - authProxyUrl: "https://auth.exit.o6s.io" - -gatewayPro: - image: ttl.sh/alexellis2/gateway:0.2.13-11-gef3bf5c0 # Required gateway configuration for Istio # directFunctions: true @@ -78,16 +96,3 @@ queueMode: jetstream nats: streamReplication: 1 - # For timeouts longer than 60 seconds see: - # https://docs.openfaas.com/tutorials/expanded-timeouts/ - - -oidcAuthPlugin: - enabled: false - verbose: true # debug setting - openidIssuer: "https://alexellis.eu.auth0.com/.well-known/openid-configuration" - audience: https://alexellis.eu.auth0.com/api/v2/ - baseHost: "https://gw.exit.o6s.io" - image: ttl.sh/alexellis/openfaas-oidc-plugin:0.5.5-10-g269b915-dirty - - From 551c26651b49b15750003f8bfa0d31e8ae5337c9 Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Mon, 27 Mar 2023 17:02:22 +0100 Subject: [PATCH 07/37] Grant access to JwtIssuers to faas-netes Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- chart/openfaas/templates/controller-rbac.yaml | 2 ++ .../openfaas/templates/system-jwtissuer.yaml | 2 +- chart/openfaas/values-pro.yaml | 27 +++++++------------ 3 files changed, 13 insertions(+), 18 deletions(-) diff --git a/chart/openfaas/templates/controller-rbac.yaml b/chart/openfaas/templates/controller-rbac.yaml index 07be4b0c3..4bc6e953a 100644 --- a/chart/openfaas/templates/controller-rbac.yaml +++ b/chart/openfaas/templates/controller-rbac.yaml @@ -78,6 +78,7 @@ rules: resources: - "profiles" - "policies" + - "jwtissuers" verbs: - "get" - "list" @@ -200,6 +201,7 @@ rules: resources: - "profiles" - "policies" + - "jwtissuers" verbs: - "get" - "list" diff --git a/chart/openfaas/templates/system-jwtissuer.yaml b/chart/openfaas/templates/system-jwtissuer.yaml index e66c0036e..91638b1d2 100644 --- a/chart/openfaas/templates/system-jwtissuer.yaml +++ b/chart/openfaas/templates/system-jwtissuer.yaml @@ -8,7 +8,7 @@ metadata: namespace: openfaas spec: iss: {{.Values.iam.systemIssuer}} - issInternal: http://oidc-plugin.{{ .Release.Namespace | quote }}:8080 + issInternal: http://oidc-plugin.{{ .Release.Namespace }}:8080 aud: - {{.Values.iam.systemIssuer}} tokenExpiry: "30m" diff --git a/chart/openfaas/values-pro.yaml b/chart/openfaas/values-pro.yaml index 166547fb1..2235d6fd0 100644 --- a/chart/openfaas/values-pro.yaml +++ b/chart/openfaas/values-pro.yaml @@ -1,20 +1,14 @@ -# Suggested additional overrides for OpenFaaS Pro users, -# in addition to (not instead of) values.yaml - faasnetesPro: - image: ttl.sh/alexellis/faas-netes:0.1.3-56-g08511400-dirty - -# HPA CPU? 3 <=> 6 -# If you have purchased licenses for 6 gateway replicas for this environment -# you can create a HPA rule to scale on CPU, but you must not scale beyond -# what's been purchased. -gateway: - replicas: 1 - # authProxyUrl: "https://auth.exit.o6s.io" + image: ttl.sh/alexellis2/faas-netes:0.1.3-59-g94357b9b-dirty gatewayPro: - image: ttl.sh/alexellis2/gateway:0.2.13-11-gef3bf5c0 + image: ttl.sh/alexellis/gateway:0.2.13-12-gff1ddbbc +oidcAuthPlugin: + enabled: true + audience: https://alexellis.eu.auth0.com/api/v2/ + image: ttl.sh/alexellis/openfaas-oidc-plugin:0.5.5-3-g43c3552 + baseHost: https://gw.exit.o6s.io iam: # The primary issuer represents how users log into the OpenFaaS dashboard and via the CLI @@ -23,11 +17,10 @@ iam: # systemIssuer represents the issuer for the OpenFaaS system components systemIssuer: "https://gw.exit.o6s.io" -oidcAuthPlugin: - enabled: true - audience: https://alexellis.eu.auth0.com/api/v2/ - image: ttl.sh/alexellis/openfaas-oidc-plugin:0.5.5-10-g269b915-dirty +gateway: + replicas: 1 + # authProxyUrl: "https://auth.exit.o6s.io" # ==================================================================================================== From 0ce6055ef270fb8922087258ce028f7d0f89daba Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Mon, 27 Mar 2023 18:21:51 +0100 Subject: [PATCH 08/37] Remove base_host and openid_issuer from OIDC plugin Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- chart/openfaas/templates/controller-rbac.yaml | 2 -- chart/openfaas/templates/gateway-dep.yaml | 12 ++++++++++++ chart/openfaas/templates/oidc-plugin-dep.yaml | 6 +----- chart/openfaas/templates/system-jwtissuer.yaml | 1 - chart/openfaas/values-pro.yaml | 5 ++--- chart/openfaas/values.yaml | 1 - 6 files changed, 15 insertions(+), 12 deletions(-) diff --git a/chart/openfaas/templates/controller-rbac.yaml b/chart/openfaas/templates/controller-rbac.yaml index 4bc6e953a..07be4b0c3 100644 --- a/chart/openfaas/templates/controller-rbac.yaml +++ b/chart/openfaas/templates/controller-rbac.yaml @@ -78,7 +78,6 @@ rules: resources: - "profiles" - "policies" - - "jwtissuers" verbs: - "get" - "list" @@ -201,7 +200,6 @@ rules: resources: - "profiles" - "policies" - - "jwtissuers" verbs: - "get" - "list" diff --git a/chart/openfaas/templates/gateway-dep.yaml b/chart/openfaas/templates/gateway-dep.yaml index deef8a42d..f5fb0d71b 100644 --- a/chart/openfaas/templates/gateway-dep.yaml +++ b/chart/openfaas/templates/gateway-dep.yaml @@ -31,6 +31,11 @@ spec: serviceAccountName: {{ .Release.Name }}-controller {{- end }} volumes: + {{- if .Values.oidcAuthPlugin.enabled }} + - name: issuer-key + secret: + secretName: issuer-key + {{- end}} # - name: faas-auth # projected: # sources: @@ -316,6 +321,8 @@ spec: - name: cluster_role value: "{{ .Values.clusterRole }}" {{- if .Values.oidcAuthPlugin.enabled }} + - name: issuer_key_path + value: "/var/secrets/issuer-key/issuer.key" - name: system_issuer value: {{ .Values.iam.systemIssuer | quote }} {{- end }} @@ -326,6 +333,11 @@ spec: value: "/var/secrets" {{- end }} volumeMounts: + {{- if .Values.oidcAuthPlugin.enabled }} + - name: issuer-key + readOnly: true + mountPath: "/var/secrets/issuer-key" + {{- end }} {{- if .Values.openfaasPro }} - name: license readOnly: true diff --git a/chart/openfaas/templates/oidc-plugin-dep.yaml b/chart/openfaas/templates/oidc-plugin-dep.yaml index 25d46dd3b..06bf3271a 100644 --- a/chart/openfaas/templates/oidc-plugin-dep.yaml +++ b/chart/openfaas/templates/oidc-plugin-dep.yaml @@ -91,13 +91,9 @@ spec: - "-provider={{- .Values.oidcAuthPlugin.provider}}" env: - name: base_host - value: "{{- .Values.oidcAuthPlugin.baseHost}}" + value: "{{- .Values.iam.systemIssuer}}" - name: port value: "8080" - - name: openid_issuer - value: "{{- .Values.iam.primaryIssuer}}" - - name: welcome_page_url - value: "{{- .Values.oidcAuthPlugin.welcomePageURL}}" - name: public_key_path value: "" - name: audience diff --git a/chart/openfaas/templates/system-jwtissuer.yaml b/chart/openfaas/templates/system-jwtissuer.yaml index 91638b1d2..e64228f2a 100644 --- a/chart/openfaas/templates/system-jwtissuer.yaml +++ b/chart/openfaas/templates/system-jwtissuer.yaml @@ -8,7 +8,6 @@ metadata: namespace: openfaas spec: iss: {{.Values.iam.systemIssuer}} - issInternal: http://oidc-plugin.{{ .Release.Namespace }}:8080 aud: - {{.Values.iam.systemIssuer}} tokenExpiry: "30m" diff --git a/chart/openfaas/values-pro.yaml b/chart/openfaas/values-pro.yaml index 2235d6fd0..1c5a2c48d 100644 --- a/chart/openfaas/values-pro.yaml +++ b/chart/openfaas/values-pro.yaml @@ -1,5 +1,5 @@ faasnetesPro: - image: ttl.sh/alexellis2/faas-netes:0.1.3-59-g94357b9b-dirty + image: ttl.sh/alexellis2/faas-netes:0.1.3-60-gb7f9119f-dirty gatewayPro: image: ttl.sh/alexellis/gateway:0.2.13-12-gff1ddbbc @@ -7,8 +7,7 @@ gatewayPro: oidcAuthPlugin: enabled: true audience: https://alexellis.eu.auth0.com/api/v2/ - image: ttl.sh/alexellis/openfaas-oidc-plugin:0.5.5-3-g43c3552 - baseHost: https://gw.exit.o6s.io + image: ttl.sh/alexellis/openfaas-oidc-plugin:0.5.5-3-g43c3552-dirty iam: # The primary issuer represents how users log into the OpenFaaS dashboard and via the CLI diff --git a/chart/openfaas/values.yaml b/chart/openfaas/values.yaml index 8d278832a..60920e47b 100644 --- a/chart/openfaas/values.yaml +++ b/chart/openfaas/values.yaml @@ -87,7 +87,6 @@ oidcAuthPlugin: audience: https://example.eu.auth0.com/api/v2/ welcomePageURL: https://gateway.openfaas.example.com cookieDomain: ".openfaas.example.com" - baseHost: "https://auth.openfaas.example.com" clientSecret: "" clientID: "" resources: From 719905b288969dbae00478fddf209e8edd3bd4a7 Mon Sep 17 00:00:00 2001 From: "Han Verstraete (OpenFaaS Ltd)" Date: Wed, 5 Apr 2023 14:08:27 +0200 Subject: [PATCH 09/37] Add root-user policy for IAM Signed-off-by: Han Verstraete (OpenFaaS Ltd) --- .../openfaas/templates/root-user-policy.yaml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 chart/openfaas/templates/root-user-policy.yaml diff --git a/chart/openfaas/templates/root-user-policy.yaml b/chart/openfaas/templates/root-user-policy.yaml new file mode 100644 index 000000000..6cb0f9f0a --- /dev/null +++ b/chart/openfaas/templates/root-user-policy.yaml @@ -0,0 +1,19 @@ +{{- if .Values.oidcAuthPlugin.enabled }} + +apiVersion: openfaas.com/v1 +kind: Policy +metadata: + name: root-user + namespace: {{ .Release.Namespace | quote }} +spec: + statement: + - sid: 1-read-and-write-functions-and-secrets-cluster-wide + action: + - Function:Read + - Function:Admin + - Secret:Read + - Secret:Admin + effect: Allow + resource: [ "*" ] + +{{- end}} \ No newline at end of file From c0335cbec179a3bc63784dc9fbb1a0140581af46 Mon Sep 17 00:00:00 2001 From: "Han Verstraete (OpenFaaS Ltd)" Date: Tue, 14 Feb 2023 17:06:48 +0100 Subject: [PATCH 10/37] Update oidc provider description Signed-off-by: Han Verstraete (OpenFaaS Ltd) --- chart/openfaas/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chart/openfaas/values.yaml b/chart/openfaas/values.yaml index 60920e47b..79e2935b5 100644 --- a/chart/openfaas/values.yaml +++ b/chart/openfaas/values.yaml @@ -80,7 +80,7 @@ faasIdler: oidcAuthPlugin: enabled: false verbose: false # debug setting - provider: "" # Leave blank, or put "azure" + provider: "" # Put "azure" if using Azure as a provider, leave blank for any other provider. insecureTLS: false scopes: "openid profile email" openidURL: "https://example.eu.auth0.com/.well-known/openid-configuration" From 8255432a241c8e80cf03d1d4736a67556248518d Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Tue, 14 Feb 2023 16:51:09 +0000 Subject: [PATCH 11/37] Split Prometheus rules for OpenFaaS CE and Pro The goal of this commit is to simplify maintaining configurations for Pro and CE for Prometheus. Tested that either file was outputted via helm template with the --show-only flag when toggling openfaasPro=true/false. Tested e2e with CE - showing autoscaling with alert-manager Tested e2e with Pro with Kind and hey, with autoscaling taking place, and RAM/CPU, provider and function metrics showing up. Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- .../templates/gateway-provider-svc.yaml | 4 +- chart/openfaas/templates/prometheus-cfg.yaml | 129 +------------ chart/openfaas/templates/prometheus-dep.yaml | 4 + .../templates/prometheus-pro-cfg.yaml | 173 ++++++++++++++++++ 4 files changed, 183 insertions(+), 127 deletions(-) create mode 100644 chart/openfaas/templates/prometheus-pro-cfg.yaml diff --git a/chart/openfaas/templates/gateway-provider-svc.yaml b/chart/openfaas/templates/gateway-provider-svc.yaml index 7dac4f71c..1606c96ad 100644 --- a/chart/openfaas/templates/gateway-provider-svc.yaml +++ b/chart/openfaas/templates/gateway-provider-svc.yaml @@ -1,4 +1,4 @@ ---- +{{- if .Values.openfaasPro }} apiVersion: v1 kind: Service metadata: @@ -22,3 +22,5 @@ spec: protocol: TCP selector: app: gateway + +{{- end }} \ No newline at end of file diff --git a/chart/openfaas/templates/prometheus-cfg.yaml b/chart/openfaas/templates/prometheus-cfg.yaml index 6a9976c1c..5888a8bd7 100644 --- a/chart/openfaas/templates/prometheus-cfg.yaml +++ b/chart/openfaas/templates/prometheus-cfg.yaml @@ -1,6 +1,7 @@ {{- $functionNs := default .Release.Namespace .Values.functionNamespace }} {{- if .Values.prometheus.create }} +{{- if eq .Values.openfaasPro false }} --- kind: ConfigMap apiVersion: v1 @@ -23,9 +24,6 @@ data: rule_files: - 'alert.rules.yml' -{{- if .Values.openfaasPro }} - - 'prometheus-rules.yml' -{{- end }} alerting: alertmanagers: @@ -39,39 +37,7 @@ data: static_configs: - targets: ['localhost:9090'] - # Capture endpoints in the openfaas namespace with a scrape annotation - # such as the gateway-provider service. - - job_name: 'openfaas-endpoints' - kubernetes_sd_configs: - - role: endpoints - namespaces: - names: - - {{ .Release.Namespace }} - relabel_configs: - - action: labelmap - regex: __meta_kubernetes_service_label_(.+) - - source_labels: [__meta_kubernetes_namespace] - action: replace - target_label: kubernetes_namespace - - source_labels: [__meta_kubernetes_service_name] - action: replace - target_label: kubernetes_name - - - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port] - separator: ; - regex: ([^:]+)(?::\d+)?;(\d+) - target_label: __address__ - replacement: $1:$2 - action: replace - - - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape] - action: keep - regex: true - # - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_port] - # action: keep - # regex: true - - - job_name: 'kubernetes-pods' + - job_name: 'openfaas-pods' scrape_interval: 5s honor_labels: false kubernetes_sd_configs: @@ -79,9 +45,6 @@ data: namespaces: names: - {{ .Release.Namespace }} -{{- if ne $functionNs (.Release.Namespace | toString) }} - - {{ $functionNs }} -{{- end }} relabel_configs: - action: labelmap regex: __meta_kubernetes_pod_label_(.+) @@ -99,68 +62,11 @@ data: regex: ([^:]+)(?::\d+)?;(\d+) replacement: $1:$2 target_label: __address__ - - action: replace - regex: (.+) - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_path - target_label: __metrics_path__ - -{{- if .Values.openfaasPro }} - - - job_name: 'kubernetes-resource-metrics' - scrape_interval: 10s - scheme: https - tls_config: - ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - insecure_skip_verify: true - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - kubernetes_sd_configs: - - role: node - relabel_configs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - target_label: __address__ - replacement: kubernetes.default.svc:443 - - source_labels: [__meta_kubernetes_node_name] - regex: (.+) - target_label: __metrics_path__ - replacement: /api/v1/nodes/${1}/proxy/metrics/resource - metric_relabel_configs: - - source_labels: [__name__] - regex: (pod)_(cpu|memory)_(.+) - action: keep - # Exclude container metrics - - source_labels: [__name__] - regex: container_(.+) - action: drop - - action: replace - source_labels: - - namespace - regex: '(.*)' - replacement: '$1' - target_label: kubernetes_namespace - # Output deployment name from Pod - - action: replace - source_labels: - - pod - regex: '^([0-9a-zA-Z-]+)+(-[0-9a-zA-Z]+-[0-9a-zA-Z]+)$' - replacement: '$1' - target_label: deployment_name - # Output fully-qualified function name fn.ns - - source_labels: [deployment_name, kubernetes_namespace] - separator: ";" - regex: '(.*);(.*)' - replacement: '${1}.${2}' - target_label: "function_name" -{{- end }} alert.rules.yml: | groups: - name: openfaas rules: - - alert: service_down - expr: up == 0 -{{- if eq .Values.openfaasPro false }} - alert: APIHighInvocationRate expr: sum(rate(gateway_function_invocation_total{code="200"}[10s])) BY (function_name) > 5 for: 5s @@ -170,35 +76,6 @@ data: annotations: description: High invocation total on "{{ "{{" }}$labels.function_name{{ "}}" }}" summary: High invocation total on "{{ "{{" }}$labels.function_name{{ "}}" }}" -{{- end }} - -{{- if .Values.openfaasPro }} - - prometheus-rules.yml: | - groups: - - name: load - rules: - - record: job:function_current_load:sum - expr: sum by (function_name) ( rate( gateway_function_invocation_total{}[30s] ) ) and avg by (function_name) (gateway_service_target_load{scaling_type="rps"}) > 1 - labels: - scaling_type: rps - - - record: job:function_current_load:sum - expr: sum by (function_name) ( max_over_time( gateway_function_invocation_inflight[45s:5s])) and on (function_name) avg by(function_name) (gateway_service_target_load{scaling_type="capacity"}) > bool 1 - labels: - scaling_type: capacity - - - record: job:function_current_load:sum - expr: sum(irate ( pod_cpu_usage_seconds_total{}[1m])*1000) by (function_name) * on (function_name) avg by (function_name) (gateway_service_target_load{scaling_type="cpu"} > bool 1 ) - labels: - scaling_type: cpu - - - name: recently_started_1m - interval: 10s - rules: - - record: job:function_current_started:max_sum - expr: max_over_time(sum by (function_name) (rate( gateway_function_invocation_started{}[1m]))[1m:5s]) > 0 - -{{- end }} {{- end }} +{{- end }} \ No newline at end of file diff --git a/chart/openfaas/templates/prometheus-dep.yaml b/chart/openfaas/templates/prometheus-dep.yaml index 641e1cead..fed7ea942 100644 --- a/chart/openfaas/templates/prometheus-dep.yaml +++ b/chart/openfaas/templates/prometheus-dep.yaml @@ -82,9 +82,11 @@ spec: name: prometheus-config subPath: prometheus-rules.yml {{- end }} +{{- if eq .Values.openfaasPro false }} - mountPath: /etc/prometheus/alert.rules.yml name: prometheus-config subPath: alert.rules.yml +{{- end}} - mountPath: /prometheus/data name: prom-data volumes: @@ -95,9 +97,11 @@ spec: - key: prometheus.yml path: prometheus.yml mode: 0644 +{{- if eq .Values.openfaasPro false }} - key: alert.rules.yml path: alert.rules.yml mode: 0644 +{{- end }} {{- if .Values.openfaasPro }} - key: prometheus-rules.yml path: prometheus-rules.yml diff --git a/chart/openfaas/templates/prometheus-pro-cfg.yaml b/chart/openfaas/templates/prometheus-pro-cfg.yaml new file mode 100644 index 000000000..361a908aa --- /dev/null +++ b/chart/openfaas/templates/prometheus-pro-cfg.yaml @@ -0,0 +1,173 @@ +{{- $functionNs := default .Release.Namespace .Values.functionNamespace }} + +# License: OpenFaaS Pro EULA +# Any use, modification or coping without an OpenFaaS Pro license is prohibited +# All rights reserved OpenFaaS Ltd 2023 + +{{- if .Values.prometheus.create }} +{{- if .Values.openfaasPro }} +--- +kind: ConfigMap +apiVersion: v1 +metadata: + labels: + app: {{ template "openfaas.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version }} + component: prometheus-config + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + name: prometheus-config + namespace: {{ .Release.Namespace | quote }} +data: + prometheus.yml: | + global: + scrape_interval: 15s + evaluation_interval: 15s + external_labels: + monitor: 'faas-monitor' + + rule_files: + - 'prometheus-rules.yml' + + scrape_configs: + - job_name: 'prometheus' + scrape_interval: 10s + static_configs: + - targets: ['localhost:9090'] + + # Capture endpoints in the openfaas namespace with a scrape annotation + # such as the gateway-provider service. + - job_name: 'openfaas-endpoints' + kubernetes_sd_configs: + - role: endpoints + namespaces: + names: + - {{ .Release.Namespace }} + relabel_configs: + - action: labelmap + regex: __meta_kubernetes_service_label_(.+) + - source_labels: [__meta_kubernetes_namespace] + action: replace + target_label: kubernetes_namespace + - source_labels: [__meta_kubernetes_service_name] + action: replace + target_label: kubernetes_name + + - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port] + separator: ; + regex: ([^:]+)(?::\d+)?;(\d+) + target_label: __address__ + replacement: $1:$2 + action: replace + + - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape] + action: keep + regex: true + + - job_name: 'kubernetes-pods' + scrape_interval: 5s + honor_labels: false + kubernetes_sd_configs: + - role: pod + namespaces: + names: + - {{ .Release.Namespace }} +{{- if ne $functionNs (.Release.Namespace | toString) }} + - {{ $functionNs }} +{{- end }} + relabel_configs: + - action: labelmap + regex: __meta_kubernetes_pod_label_(.+) + - source_labels: [__meta_kubernetes_namespace] + action: replace + target_label: kubernetes_namespace + - source_labels: [__meta_kubernetes_pod_name] + action: replace + target_label: kubernetes_pod_name + - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] + action: keep + regex: true + - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] + action: replace + regex: ([^:]+)(?::\d+)?;(\d+) + replacement: $1:$2 + target_label: __address__ + - action: replace + regex: (.+) + source_labels: + - __meta_kubernetes_pod_annotation_prometheus_io_path + target_label: __metrics_path__ + + - job_name: 'kubernetes-resource-metrics' + scrape_interval: 10s + scheme: https + tls_config: + ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + insecure_skip_verify: true + bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + kubernetes_sd_configs: + - role: node + relabel_configs: + - action: labelmap + regex: __meta_kubernetes_node_label_(.+) + - target_label: __address__ + replacement: kubernetes.default.svc:443 + - source_labels: [__meta_kubernetes_node_name] + regex: (.+) + target_label: __metrics_path__ + replacement: /api/v1/nodes/${1}/proxy/metrics/resource + metric_relabel_configs: + - source_labels: [__name__] + regex: (pod)_(cpu|memory)_(.+) + action: keep + # Exclude container metrics + - source_labels: [__name__] + regex: container_(.+) + action: drop + - action: replace + source_labels: + - namespace + regex: '(.*)' + replacement: '$1' + target_label: kubernetes_namespace + # Output deployment name from Pod + - action: replace + source_labels: + - pod + regex: '^([0-9a-zA-Z-]+)+(-[0-9a-zA-Z]+-[0-9a-zA-Z]+)$' + replacement: '$1' + target_label: deployment_name + # Output fully-qualified function name fn.ns + - source_labels: [deployment_name, kubernetes_namespace] + separator: ";" + regex: '(.*);(.*)' + replacement: '${1}.${2}' + target_label: "function_name" + + prometheus-rules.yml: | + groups: + - name: load + rules: + - record: job:function_current_load:sum + expr: sum by (function_name) ( rate( gateway_function_invocation_total{}[30s] ) ) and avg by (function_name) (gateway_service_target_load{scaling_type="rps"}) > 1 + labels: + scaling_type: rps + + - record: job:function_current_load:sum + expr: sum by (function_name) ( max_over_time( gateway_function_invocation_inflight[45s:5s])) and on (function_name) avg by(function_name) (gateway_service_target_load{scaling_type="capacity"}) > bool 1 + labels: + scaling_type: capacity + + - record: job:function_current_load:sum + expr: sum(irate ( pod_cpu_usage_seconds_total{}[1m])*1000) by (function_name) * on (function_name) avg by (function_name) (gateway_service_target_load{scaling_type="cpu"} > bool 1 ) + labels: + scaling_type: cpu + + - name: recently_started_1m + interval: 10s + rules: + - record: job:function_current_started:max_sum + expr: max_over_time(sum by (function_name) (rate( gateway_function_invocation_started{}[1m]))[1m:5s]) > 0 + +{{- end }} +{{- end }} From 8ff2995843f9d942fa57c974ef1a0c0dac5bea2c Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Tue, 14 Feb 2023 17:17:01 +0000 Subject: [PATCH 12/37] Separate out licensed Pro Prometheus configs These are and always have been licensed code, and are not part of OpenFaaS CE or OSS. Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- chart/openfaas/Chart.yaml | 2 +- docs/cron-connector-0.6.4.tgz | Bin 2948 -> 2947 bytes docs/index.yaml | 712 ++++++++++++++++-------------- docs/kafka-connector-0.7.3.tgz | Bin 6482 -> 6484 bytes docs/mqtt-connector-0.4.7.tgz | Bin 2899 -> 2899 bytes docs/nats-connector-0.3.2.tgz | Bin 3068 -> 3068 bytes docs/openfaas-11.1.12.tgz | Bin 0 -> 33867 bytes docs/postgres-connector-0.0.6.tgz | Bin 4139 -> 4137 bytes docs/pro-builder-0.3.9.tgz | Bin 6134 -> 11994 bytes docs/queue-worker-0.1.3.tgz | Bin 3148 -> 3145 bytes docs/sns-connector-0.1.1.tgz | Bin 5018 -> 5021 bytes docs/sqs-connector-0.2.2.tgz | Bin 4208 -> 4212 bytes yaml/alertmanager-dep.yml | 2 +- yaml/gateway-provider-svc.yml | 21 - yaml/prometheus-cfg.yml | 39 +- yaml/prometheus-dep.yml | 2 +- yaml/prometheus-pro-cfg.yml | 4 + 17 files changed, 377 insertions(+), 405 deletions(-) create mode 100644 docs/openfaas-11.1.12.tgz delete mode 100644 yaml/gateway-provider-svc.yml create mode 100644 yaml/prometheus-pro-cfg.yml diff --git a/chart/openfaas/Chart.yaml b/chart/openfaas/Chart.yaml index a864054c2..1d0172c19 100644 --- a/chart/openfaas/Chart.yaml +++ b/chart/openfaas/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 type: application description: OpenFaaS - Serverless Functions Made Simple name: openfaas -version: 11.1.11 +version: 11.1.12 sources: - https://github.com/openfaas/faas - https://github.com/openfaas/faas-netes diff --git a/docs/cron-connector-0.6.4.tgz b/docs/cron-connector-0.6.4.tgz index bdba599ce83ac9a3df501a70688bf0e160849b12..b7cf0d5838334464869d2f57459f185a76ef7067 100644 GIT binary patch delta 2584 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 delta 2585 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 JD(V1q002QTN}K=y delta 5710 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 delta 2373 zcmV-L3A*;v7Sk4xObSinT?i;}d&%}LkybT-PN!6Ae@WBi$(I|wUavPeKDPgRygvBUhTrC%w<+)mH8gGHAv=qEt-q5axXn zqlzTUw0%Bx+XCKa$iJiX0>(Ly%#s2v;O)OIFF}ipMT$&CiXlw3&Qur#i^akh8S*iI zrOJ;)N?2sbmCKSY{0Y<3e3UDck>DD+HgG|S6r>n48l+TdltIaUn23oODovvq#zT?O zPdWM-pO6_Y7edA=Bwi&V@c`$@bu8H&Iq|^kbm9RMnxvF*O&LdNaWJJU34tbf{nv)v z0Gt}d%nBw6Q^Y+torWlp%Lpy0Qb(tMUqdO6@hBfr<7F-UdHDi*{;~g(Jm~vx`Tv|I zIjS!l0QUHQ|Hbi|{~z~H9{v9z221G#Lzqk>=`&IDz{b7^&CWa`60?LwRE5wdqzhem zlQON*U;&xy+2yW>#1e41!;j;Dn5%n4t_oM_CvI1-bB5?^TaP2}7>W z&qC0s^hB_j&|FVHP^C<038B*=B+rzVNYkNaDT-W&aMV-Kg}3yYrFjZ*E-gD43kj41 z<8$EzAQDG8OX4Bp8s(fOA@omw6rpO#qjNqNGc0s~F1TlyGYaosUtU127@vTi;wrZN zS%JlzO2I|0K#E)=8BxWep^-WSEpsFjs&PS=!(1jV_?o!n=2qd^X-_1sVihL3b_oSGdOm{h_x|$Dg|Dym=kwTi{yRE3ZpHtT z!Qhib1403`lZOLNf4}G*wf%o^a?*eF|A!biH^Fn5vor*S8pbR^z0C02)R-ljVhGQJ zyE|f_$eZho^4R*XNrOO)?eEBz3`hazL5yR@5js`qFwh-;Etu zd$q=8iUi-hR{MI3f4$^>BB0=T$S?gI>X5ijrwt?W*Sv7bxexY?~mwDv6eO-Ea3!ieKt(@j`=c;98P1K+i z=bduWkyT}>%N5j27W~he7ai;>yPSo)vR6J7PXl*RdA!Isn_;{ovB;G+9IVquFK^?C&-lyMvS-07o8dul@nFR zYMaUyxtqK^=y-1a+nbvv;N4xPMXRCu1_rKpzee9q*T~!F!>N~r_;m&>u2C<+4rfp= z>#sA(e~OhFt2)B3uvX)yVuRTvOTEYecr#qqE!aT)6`EGJ3+sICqUXwOb!97@doV;k zZ~9f~6}78}#yWt#U~KqC4YnR%H<7iO&rqVu1XsA1aufV8;=_@Mmj`mNIQ!TXcT_{Y z%=T+gyU^N3_a2e5DL@6WnSDpg96K9PUDzC^ercD17|!&uA%>8 zXH?m?!QAKgt=SrCb5Pi@o=wMr@uY_YvupGIeN1R7ZSf* zj=Ast@8m^0|35w&ynM|6A7XUj1JxR(>*;cD9u`yNU_%h&6Ub;ZqZ3p<>B8ldDNuQq z38@vRDJBU_5;1aF4datB2`UnaCBKpS@AU&!qSTlMe|P zLN~9^-oEkE_)GHGmUZq(gY z`T6ONmd92W`;3ro7tURiX$gcSv#Jrey?Efbg*UFz?|#ta7Q8J3wl5t#4x?qoy0RsW zt4$id29pvBFagt(LkcN>&Efpac!k7FqA~|ndvESA?zJ^)vJ^d{2=@Pz6u_E)vQotJcnEyTt0BsC!6MiPcW?DzVPX#BYRpfym1g(j3Q9nt>SC zdhzGVFZ%E|h-<{^9VS-2;8lsVs+k!R6+6a2BG*Ni?JZn&I)`y+s;W(O-EF*dZLd39 zUX60LM12s`DuJzd{>{v_)Uk>d#VJ5eM+wGu^U3@$hO2D5g>?%*tn%=(=hl9`Tt6*D r^qWk4B^Z|Iyju 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 I`2czY0D3=9DF6Tf literal 0 HcmV?d00001 diff --git a/docs/postgres-connector-0.0.6.tgz b/docs/postgres-connector-0.0.6.tgz index b601dfef706be47f4bd69df0177936a40a5d3ab7..f4ada5982e14353568ad1e3247ed319e2a45a4fa 100644 GIT binary patch delta 4117 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 V{Sf8b{{{d6|NjK^1e^d&001Mb8lM0F diff --git a/docs/pro-builder-0.3.9.tgz b/docs/pro-builder-0.3.9.tgz index f7797a9d13f5a3227a9b2d52aa593deaa95bf48c..a5d828a03e4e163bd58f5383441f6fe8af600e29 100644 GIT binary patch literal 11994 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 WgepHl;Qzg`gUr)Cb-;?i!2SnrX3{AD delta 6129 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 D9c)3d diff --git a/docs/queue-worker-0.1.3.tgz b/docs/queue-worker-0.1.3.tgz index b6c531c35547c11e4309f2e2dc73369564aa6f60..729d8e3cee83c72ab1e7433514bd6ff75276201e 100644 GIT binary patch delta 2862 zcmV+}3(@q<7|9rrJb&SG+qe18?oIDfi=t#H$!R7tO_Q`ud&zlXH#eQOV?pFn zL<|B90LoS^_t`rDNQ$B*Tbc7Ea~OFnBZ=9X%aB9Sx#r_$V42JsC!iAb+}7E_Res8>${fKYOh1 zz&wJ%P5$kaJvKNR{Xb>47Xz zq?BsXgO6ym>q>f_p7em~rHDyRnJ|ZeAVL6@S1m;<+LMHq5w&Et~H+#6(R+32+9)(AQD0Ev%PhdbuPA}hx zl(Tte+;>^{o~JBFS(*t1gFJ9#@6o8`3u7=ZjJEYr(0^3_M42NUMmiu&FvBR{Xt4DM zFp8eRd;CN?;mWpLfrpW<}qX^yzgGx{iC#V*v;I&dxxwawv zktXnGYVd+CUCogrVll$s1zk|a>5QXm8P#<4=p-|yaE!i`3EEkWqGyMr;rEB*C^{TR z!^3fObbmOGMgbvAXpBpRr$3xbAf;R*A#)EmApn`wcBU3^((hLdVZAB=0Vt%h6wjh( zQ9y{GMz{Le&u!GB;c#d_6~|t3 zxQ4bO0K`)0GDqb*C8e@rd)MmgwMYkqa5;CpCx19A=e01v`kI_trY)4@7+77?vQ#lT z@@jDHN60akYU#D+E%O}3MLB_B99flf`h8q-ek?hQmlJrCzLVxyp+;c{5i-FO;wX^ALIh|NJ*0G)=88E?x82-mdpvHtfIE22Ks?{#k~+K&3-d{Crn%hy6bq zjenz#{eLnXKG^>+Qm(H0kIC!Hf{Fx8hHjgKOx^F;g#+Yq|N5F-UG*TrlnI2OtuvwR z5I}EDLQ8HS^r3{^_z-^Z#|lgN;{ugp3Bn4DDn$%Wj@(a{pOk6JE+OazP+_4+>`&rY ze5sHc1lo*{mYgr)Q%N~X87B5<=a>)4Pk-pK9lfz5*okPEVN6Snpk=fH$ERK&PB zgZ5_Irqf-6ud5l;IF_X_)&iCq@0^_L^uqUfx64>660+EC@qu z$v%JCZeNr41u6j-lOhH!5;uAB3f;O1cIDio;4ZEec_u9VV&LFJ&lI;%;h~le+buYH-44BJu4O81G~=lRysJ@ z(sa8%S$VN44Zp{Dt)%^K%zrwQe`b8Hdk@@B@_#qB;rgu3hwp*gN}W5*-9k`k)bgxe z|NTUAHW*ksVV?6)?qYkA6Dp4+-rn*1pEauovh6w+$QEyOW3 z*#v@Z&d4)q9qy6|6igUz_Im{N@y?={My4sh5}|K3cyRIjWt6J!m*MNm)gi2mAi`*h>5?dO_7>XVMxe-!2!Gx+EC6d$eQo!H6oc# zr!%TEccleoF;_G}&|F^l9^$o{~`dr9;<-;SChwU`cw@X4YXpc=i^p=H<*9k z8oEQZEi!MB*AHr1-8uo-^T9Z`^CjdbYu798tw>WPb9eFMGE@FGTwx(KGg4VoY}Y{n zmoeooT~-=@REKbpF|O_0&MiosQ87miQdO(Mw5@J#Lk}$o#8iMPgCfC`1;H#_;u{dw(CCkg)y(M!~mT4n7NJ|mB%GfTn1m^aeC5n)EbrDS~pQQ-hZ~?H~6Jpes97r zw!)8w!(kisMy|EmuO6^zb?;>A%$nEo?Ie$@2Pi_YtZp^o3vYjnzJ#y$y*8lTy zPaXVnuV1)sf!uE5Zs6T+=5{)adX2gz*n;!M1eOx|K+) zIpA^*bt-?wHdtD3A`u(*JxDVx_Jd}s>P_~x;1pom5 M{~1Qz>i{|c0D-ik&j0`b delta 2879 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 diff --git a/docs/sns-connector-0.1.1.tgz b/docs/sns-connector-0.1.1.tgz index 392e251d8518f545b563ffe1ff45bf4c5a40b0ef..630e80d35cbf3d9fac08f559cb3dee5f6a86ff19 100644 GIT binary patch delta 4892 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 O0RR7*VD7E}S^xk|M1R%* delta 4889 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 LI{iZ<09pV5lM$E< diff --git a/docs/sqs-connector-0.2.2.tgz b/docs/sqs-connector-0.2.2.tgz index a8f8fda3717c8153156edbde3003ae821b1d5501..16e439e3f55d65e61478faec5bf8f0308cc21857 100644 GIT binary patch delta 3968 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 aOL{6#<*EF&%Kruc0RR7@c-!s(N&o=w6tYJE delta 3986 zcmV;D4{h-DAn+iNJb!O<+cuNWYkZ15sn1NCizwMn+>T~)bFS^Sp2taC%W3bKwj)90 zNHegegJkC3+zI@SDjFBj-eK^dpx632TPj7 zPd;Jk^?JR-=g;l`Ua!~u-#hFbKG}PIaQI^H@bKV8?@4d(c|EVU{{(uU62zvGDNW^* z-bc69?A+g^(3JgxQZd2%FyA8)s!+02+uz4dF5pdy{0B-0Fv)mmJ}J-w20ssx`9=(D zjD{km?=uWiJ|)+aO93na{F8VAKYvaA-+$hF)c?;>+Hf^P_$QrQQz+yBm;%a6y}ytG zCP;NAk+ex0E;1R;s6wC+vkLDk6UY){3NQh8V7GngAD=jl;q5?u#LVu^&hv_Vo z0TTtTSV!HO*!O$ELC_;aVj8oMsy^%y@;<{1-(H^gq2)W)GMyNpHqbFi^%9hpj8B10 zAXDby=+^-fOhPKpW1*6e1jFQ%F!LIz>gmz39V)#tJQ!ostnnQ0k}Ltu5;XIBjhOmIVaB2eIhb()p=T%|l_Er?gjBGYu~=!+2E4&A z(`JJGI!WeCu`!F8US6>TMW*|3&{L+ptGt~BWg5n)7l<5E5yz&!Sz4|9S@HH=4~QW) z75lL7xOmi_#BiLT4u5Ax9|aE)ItBB+&R&ls^yXDgYo*+>u$>l}wyn_;eU>UMktR*- zjBAv08e4jap(%(-#Z#a>@@_&-dX`r&_`OvK3#MnFVzICjmL({anX*{$ zsnH5v9acrCTJrFW&qYX`tKx)#wBe_#s|(1T3a2OrB;#{&U4Lhh(_Af6?1RP|-A!Z4 zxZ!aj8FvyDQB6T2jojRuSLNJ{aUvwHAm^e|!Ign8Gh7QiL^j79{3@5-FkJ%;oIg^H3%Z22m*+;_ zXlOJ6jxNsZTz~uFb~B^M)KObYY7D9IjohokN$h{u`>tm=e@_()fo6JU*_e*xv}9~P z4b3OtU5SO;1t8ss+Gl_S6CsyD1R>8Ota9N zTE@3yI=4`!zAUX&pOCK#zs6SRaQN^6f=jfRg4Z-bmC_L5?hYbMW3jBechH%Tzl%D4 z_OeO;hck>*lq%5aM{fmp=>LB2;CVy;4-dY5JpcJD<->>WQ<$@)4+^#2P#CA_WnzXU zoM9iHcJJcjNa%;0_y& z`a$UR?nD% zug6O}8Yiy@hSnHSm16i!K+Yy0ovCt6jN?feSNT5HzGK>LjK^qvu?VQLez@5xTeMpS z*HG05m`#fD^dE~c^)wp^?ltJKDmi^+JJ5f5|9P$8EXKldsoC@rYwhiW0a{mf09PFvWz+ia9H|7k4wfH#7`%P`-|M|NJZP@}-yZHguK%B- zRO3H1O;vZkN3I!<`fyT607+2Oh-zxK%hp`w`)rz~edCLJv42@z^aHrNbNg?Rq=F;Y z&De?kXsnjyR5fOIcb)RhW|NjTFhj|-J@2h<4hAUa%x(=VQN9rOS2hryfTn41U99>6 z6I~bYxnCz&Yuh~)4rFTM|cbGGodX`x9Q>Bc$bn?i? z%MTxX)qjA7EafNO!%W7t?*KMB zUz@A)aJ_2k)^W{4FuNE!vR%yV4rD0v@W4){wP3=-cn`-ST0X3S??tq{ZzDEn@Srw| zz|F2EY=~+m1s9nbmI0BS?KDDLo0_?oJ*?s>DSy^OXla?P=wF`fVwH86h>YuDN;h(- zYIbV{ZOx#r?L;HqxTzu~tF#k~sR~?*#Okt? z^NPiEh&&V#4LredVih&_{!K7wSF<& z;z&9`GnVul=ww12LY zhSx6ttPNK)rpnwpHN!ZDX)MO>l!Wo=Gmscl&E^QkQ>?tFJR)u2ICXyQ*Qvw_yTQom z*}r`gfU!m(xUFd*L5dP$#xWql$zV9pLLzCyu}BiZ;g{n9L`*6YOquT5zYabL#{Vt5 z_OE|2n|93~|5MF*w`4S?;dPeU*ng)YPXo0`$A)62W5T^Ay;|AW0^}6QeH%n^28~d?$kDBg-_TtlX)gn?l~Fmd30FM&?YQ0 ziILCIwnos>*XF|~#v8NJCx2u#8jY!%RWhR1XL|o`eU5s*w|Ucar#)dMmdm`5m3aHAbO=%F5icJ}fMpgxkx1FPiqEg;hF4E+e$(X2I zA?y13Svr+8!g{EtVAe>5^!lE|FMgMxi-@2d(f_b_QRrCA(MJKCai*~nkfo7PU2C?= zzGwky7RP2#C|?4{g@2E`s-QMU6e65sEYifNM;`WUjL!Pr1uoS1=R0RVOdzPN=k%)|=T?2s207C*&!N{;M%vn_A&xe9*DdHGq zeQ|P!(c~zKn0cb{iu}0soN*Xc#%L4}atjw!(gZb1Xp~zxDKC&VKYmOxj9q%!CIWH` zoec#xfBLwxld*+0Y8>g0%1-^zyy7CHy984>RL?+6Cb6K_+oEdeLkgutRxVpuV-`{= z%{I!5mcNs7W`^jj_TpLu4*q!@R(i_bSTNEfC{(80rn!Zeg@d;B#1&Fwv-9+c>7wEtmOf1U8ry zWwNG`rGJUKmnPi8sMXr3iAAJg)U173#31~&Fl!jym9Juvr1w~(Y%`8UP`^~R2A)M# z#$!e`KJIFs3)EP#`s>U6gsu|pso9OI{6eh{9Qk|3FmR`T80CAWK8)Tev#JScWkrd2 zi&@wKczgX@LIx>@Y_bHT;SAEk56OyUZq(^0)N^o+%a<14Z_kRyKSn_1G_!i41&pkN znLCT400xM4U#HM4pW0p%9p_J7Vj||n5?jyjI*McOe?b~kj%8+*@&_qljFe*pS?Z1e s45oh52j 5 for: 5s diff --git a/yaml/prometheus-dep.yml b/yaml/prometheus-dep.yml index 3aeadd90b..27fa10096 100644 --- a/yaml/prometheus-dep.yml +++ b/yaml/prometheus-dep.yml @@ -18,7 +18,7 @@ spec: app: prometheus annotations: sidecar.istio.io/inject: "true" - checksum/prometheus-config: "482c3cf10945ddbee85e25384060fc7d0af8ae4473e2e103afabae0b9d7c72a3" + checksum/prometheus-config: "e67e95ef18916540fb2de50106e8f32ffd2dea9cf3737e9f6fbc2ad4dc938fc4" spec: serviceAccountName: openfaas-prometheus containers: diff --git a/yaml/prometheus-pro-cfg.yml b/yaml/prometheus-pro-cfg.yml new file mode 100644 index 000000000..483ca77fc --- /dev/null +++ b/yaml/prometheus-pro-cfg.yml @@ -0,0 +1,4 @@ +--- +# License: OpenFaaS Pro EULA +# Any use, modification or coping without an OpenFaaS Pro license is prohibited +# All rights reserved OpenFaaS Ltd 2023 From c976ccd064ee075ac5e61e000bd9b571f1edac8f Mon Sep 17 00:00:00 2001 From: "Han Verstraete (OpenFaaS Ltd)" Date: Thu, 16 Feb 2023 18:24:55 +0100 Subject: [PATCH 13/37] Remove alertmanager from OpenFaaS Pro deployment Alert manager is only used in OpenFaaS CE, remove it from the OpenFaaS Pro deployment. Signed-off-by: Han Verstraete (OpenFaaS Ltd) --- chart/openfaas/templates/alertmanager-cfg.yaml | 2 ++ chart/openfaas/templates/alertmanager-dep.yaml | 2 ++ chart/openfaas/templates/alertmanager-svc.yaml | 2 ++ 3 files changed, 6 insertions(+) diff --git a/chart/openfaas/templates/alertmanager-cfg.yaml b/chart/openfaas/templates/alertmanager-cfg.yaml index 24c5b8f88..5d5fd03e0 100644 --- a/chart/openfaas/templates/alertmanager-cfg.yaml +++ b/chart/openfaas/templates/alertmanager-cfg.yaml @@ -1,4 +1,5 @@ {{- $functionNs := default .Release.Namespace .Values.functionNamespace }} +{{- if not .Values.openfaasPro }} {{- if .Values.alertmanager.create }} --- kind: ConfigMap @@ -44,4 +45,5 @@ data: username: admin password_file: /var/secrets/basic-auth-password {{- end -}} +{{- end }} {{- end }} \ No newline at end of file diff --git a/chart/openfaas/templates/alertmanager-dep.yaml b/chart/openfaas/templates/alertmanager-dep.yaml index d14ec77ad..722b3a545 100644 --- a/chart/openfaas/templates/alertmanager-dep.yaml +++ b/chart/openfaas/templates/alertmanager-dep.yaml @@ -1,4 +1,5 @@ {{- $functionNs := default .Release.Namespace .Values.functionNamespace }} +{{- if not .Values.openfaasPro }} {{- if .Values.alertmanager.create }} --- apiVersion: apps/v1 @@ -106,3 +107,4 @@ spec: {{ toYaml . | indent 8 }} {{- end }} {{- end }} +{{- end }} diff --git a/chart/openfaas/templates/alertmanager-svc.yaml b/chart/openfaas/templates/alertmanager-svc.yaml index d85b443ca..843dc9eba 100644 --- a/chart/openfaas/templates/alertmanager-svc.yaml +++ b/chart/openfaas/templates/alertmanager-svc.yaml @@ -1,4 +1,5 @@ {{- $functionNs := default .Release.Namespace .Values.functionNamespace }} +{{- if not .Values.openfaasPro }} {{- if .Values.alertmanager.create }} --- apiVersion: v1 @@ -19,4 +20,5 @@ spec: protocol: TCP selector: app: alertmanager +{{- end }} {{- end }} \ No newline at end of file From 3db4c0ead4f06e117874b90fcf4b969b24d01a83 Mon Sep 17 00:00:00 2001 From: "Han Verstraete (OpenFaaS Ltd)" Date: Wed, 15 Feb 2023 15:55:56 +0100 Subject: [PATCH 14/37] Add paremeter for signing key secret used by dashboard Allows users to select the secret with the signing keys or leave blank to have the keys generated automatically by the dashboard. Signed-off-by: Han Verstraete (OpenFaaS Ltd) --- chart/openfaas/README.md | 1 + chart/openfaas/templates/dashboard-dep.yaml | 7 +++++-- chart/openfaas/values.yaml | 5 ++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/chart/openfaas/README.md b/chart/openfaas/README.md index e7f82fccd..cedcd91a4 100644 --- a/chart/openfaas/README.md +++ b/chart/openfaas/README.md @@ -546,6 +546,7 @@ yaml) | | `dashboard.publicURL` | URL used to expose the dashboard. Needs to be a fully qualified domain name (FQDN) | `https://dashboard.example.com` | | `dashboard.replicas` | Replicas of the dashboard | `1` | | `dashboard.resources` | Resource limits and requests for the dashboard pods | See [values.yaml](./values.yaml) | +| `dashboard.signingKeySecret` | Name of signing key secret for sessions. Can be left blank for development, see https://docs.openfaas.com/openfaas-pro/dashboard/ for production and staging. | `""` | ### OIDC / SSO (OpenFaaS Pro) diff --git a/chart/openfaas/templates/dashboard-dep.yaml b/chart/openfaas/templates/dashboard-dep.yaml index 7bcfe3430..f1b558b9e 100644 --- a/chart/openfaas/templates/dashboard-dep.yaml +++ b/chart/openfaas/templates/dashboard-dep.yaml @@ -32,9 +32,11 @@ spec: - name: license secret: secretName: openfaas-license + {{- if .Values.dashboard.signingKeySecret }} - name: dashboard-jwt secret: - secretName: dashboard-jwt + secretName: {{ .Values.dashboard.signingKeySecret }} + {{- end }} containers: - name: dashboard resources: @@ -79,13 +81,14 @@ spec: readOnly: true mountPath: "/var/secrets/gateway" {{- end }} - - name: license readOnly: true mountPath: "/var/secrets/license" + {{- if .Values.dashboard.signingKeySecret }} - name: dashboard-jwt readOnly: true mountPath: "/var/secrets/dashboard-jwt" + {{- end }} {{- with .Values.nodeSelector }} nodeSelector: diff --git a/chart/openfaas/values.yaml b/chart/openfaas/values.yaml index 79e2935b5..680e36995 100644 --- a/chart/openfaas/values.yaml +++ b/chart/openfaas/values.yaml @@ -49,8 +49,11 @@ autoscaler: ## To use with port-forwarding, set publicURL to ## http://127.0.0.1 dashboard: - image: ghcr.io/openfaasltd/openfaas-dashboard:0.1.1 + image: ghcr.io/openfaasltd/openfaas-dashboard:0.2.0 publicURL: https://dashboard.example.com + # Name of signing key secret for sessions. + # Leave blank for development, see https://docs.openfaas.com/openfaas-pro/dashboard/ for production and staging. + signingKeySecret: "" replicas: 1 enabled: false resources: From 2f50573c71cfe86ad0b3c32df62192637c6d7583 Mon Sep 17 00:00:00 2001 From: "Han Verstraete (OpenFaaS Ltd)" Date: Thu, 16 Feb 2023 18:08:21 +0100 Subject: [PATCH 15/37] Add dashboard warning message in openfaas chart notes Signed-off-by: Han Verstraete (OpenFaaS Ltd) --- chart/openfaas/templates/NOTES.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/chart/openfaas/templates/NOTES.txt b/chart/openfaas/templates/NOTES.txt index f468256d0..a1709139b 100644 --- a/chart/openfaas/templates/NOTES.txt +++ b/chart/openfaas/templates/NOTES.txt @@ -8,3 +8,9 @@ To retrieve the admin password, run: echo $(kubectl -n {{ .Release.Namespace }} get secret basic-auth -o jsonpath="{.data.basic-auth-password}" | base64 --decode) {{- end }} + +{{- if and .Values.dashboard.enabled (not .Values.dashboard.signingKeySecret) }} + +Warning: The dashboard is using auto generated signing keys. +These should only be used for development. See: https://docs.openfaas.com/openfaas-pro/dashboard/ +{{- end}} From 236ae23671911a7abe68b1d71fe7fa021befee0b Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Mon, 20 Feb 2023 17:10:22 +0000 Subject: [PATCH 16/37] Update OpenFaaS Dashboard to make signing key optional When the signing key is not given, then a new key is generated every time the dashboard is updated or restarted. This is useful for dev, but we recommend creating a secret instead. Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- chart/openfaas/Chart.yaml | 2 +- docs/cron-connector-0.6.4.tgz | Bin 2947 -> 2948 bytes docs/index.yaml | 714 ++++++++++++++++-------------- docs/kafka-connector-0.7.3.tgz | Bin 6484 -> 6484 bytes docs/mqtt-connector-0.4.7.tgz | Bin 2899 -> 2898 bytes docs/nats-connector-0.3.2.tgz | Bin 3068 -> 3069 bytes docs/openfaas-11.1.13.tgz | Bin 0 -> 34075 bytes docs/postgres-connector-0.0.6.tgz | Bin 4137 -> 4139 bytes docs/pro-builder-0.3.9.tgz | Bin 11994 -> 11995 bytes docs/queue-worker-0.1.3.tgz | Bin 3145 -> 3146 bytes docs/sns-connector-0.1.1.tgz | Bin 5021 -> 5018 bytes docs/sqs-connector-0.2.2.tgz | Bin 4212 -> 4210 bytes yaml/alertmanager-dep.yml | 2 +- yaml/prometheus-dep.yml | 2 +- 14 files changed, 373 insertions(+), 347 deletions(-) create mode 100644 docs/openfaas-11.1.13.tgz diff --git a/chart/openfaas/Chart.yaml b/chart/openfaas/Chart.yaml index 1d0172c19..4e0c0ef88 100644 --- a/chart/openfaas/Chart.yaml +++ b/chart/openfaas/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 type: application description: OpenFaaS - Serverless Functions Made Simple name: openfaas -version: 11.1.12 +version: 11.1.13 sources: - https://github.com/openfaas/faas - https://github.com/openfaas/faas-netes diff --git a/docs/cron-connector-0.6.4.tgz b/docs/cron-connector-0.6.4.tgz index b7cf0d5838334464869d2f57459f185a76ef7067..438e8cfecd7b7168003dc254e12ef313517dd3c7 100644 GIT binary patch delta 2905 zcmV-f3#Rmg7lap(Jb!I(8#nULYkrFP%Pr96U#%qDaf$^3T#%%=;L^m1(;SNHL85j? zyNtQyhU7}o#lFveAh}OkJvz=gD9(IgYxywz&5$!34kuDl^dl(*Mn_mENR9c ze7!Op4u@x_r|$o7IPCr(o*kb(7@eLxK7D+A`sn2N!EkgsI)5EKfZ$$qj{YeVV*?Ux)NfE+)L}JvDV!3hO?-WZCRPZK8@e8FF@Jk^g+oWN^ObT}IkW^+E zLTXH|!@*#&SOhXhF{4xmk<18-ETyVh(M6CjlNQrLql%<3D2(kls0Ix(j2RtdR2x)- zYUVMQi5zP~qkl_`$16P&`Y@}|kv?ctb5tC){jhXN9}LS-k-mqW zQ6>y!0+kz!8D%^K%JI`*R`3G|Y8kXG$T`!*f3NBd(XvnxI#Ly{p3fEL`b9RI&HVPud1~^{CW8EkdW&0T*(k-lxrj;S2833Tc+eDUY~Uo z923H2qV2#VcqJ2vaatshq1H4(O~6-Flh|GtXuzZhTqZD+Dx>Bn&_$k0Wi&)mXvq0)J(f5PD@(kB}pHDdzGLVa}){MfFldsggn#x;8X`BF-ffhPY-sB%h7Af+Cwn-$qaH%nXm-ju?%5~W`QW+V}WYPMB*@&l6M5H;6O(y z#sx=B6iy4qw0HGd&Sa#S8e2>I-C zr-eyFFseX86xN0gK;g#%wQ;`zGR&k}hR{1Z{gw4xRg@PY^hU#B)^qE^S;kDclC1&9 zkIw9fZ>xF z{ycaHbC!jm(ZGyxG|L>HWL7LuiXl84TwfF0i@f-hQxQ8owRa$pGxs}kAp=tO>qCq) zCeV3Pep3aucMtkaJ1w|@z{eV_jzaL>-#cv2H*-{q#Ryl{=@1c|ow%PYyC`Ne_J0X_ z{e~Ed*!}hhpDCmUf!1@(3eK1Cv7nsI7{);J++h#M-_cWd{f(W&@?i~LL<^0eWrpy# zVv0(jLG3x7G32oZs?hr~7+Vu%Ql{aD>C#E#`RfbY*ZOEW$LPm^yqtmZ_Q(^lz8+;l zd%^iSW?;cMhbcm#Elv&8fiKbS5Pz=iwJKmXtL0fW)-tX7Z0&H6(7A3XedibmpB%of zEu6J1Je3v0-C$j*y)nRCF=1xV`(F3I*S!ukKkrR;+P2>-JFvC1R%OcDy%D7vD*{yzso7|@@D+$R z1bI`K`}ScaSl_dGJ@7Ss*!VC|k?uHVt?+0YKp7gfi(Gchl?+^MyMJ5l8;1D>8)vc*W}MS4quXoS>p<+R<{Iu!z?GkzcjB7 zYpu#eAD?zdl%h&@=nYy-H0Qn)|2N$#4VdTMH@*N;!Pq}+PdYKXU= zx(=uRt=;qgdXuaN5Py%>^M6iGAKl;o?xGyQIW-2AaIYiD`f==ZEXYfnJ4%uSEx0UA|RwDX#E)!bjne?t2H%j%D6r9oytp- zqJnzwX`nuBN7D>lvR(kcNaf#!U(_*lBVi%c z!;F7*P?$?AOMBkCH;QU$&k3+!<^4Zscs$xhlYHk%I{Gw@Yut5SWSw4FCJrz; za2~6BXMY=zia?Pk$_l05uaNygI)d4fZUBEcFRtIO!)A5QT4+AFX?gSfav4!x@3HpF zX2WyB3`E>+tzD@P4KJ2KLZTR&DnhpKwh64`V*_h}k3V)(NGsN!Nikzd;eB0@xz8{o zS8z@h&CsA~-Lx*rp=I=LZLoXCKHzpIN2?eHWDAYo4^&kOFMJ>pq@#o0iDW%$1ue*wFTq7NG`Cn zi$2A73zBm7)u9$iXES~|mP3&=LA%K+lHcCGa^};j>C^L;gxEg!?r3^~K$a3Uo|KaxUVWTYBAO{p@$l4ktD z*DJ%}aCm-t>i!Rh!|wm#`SJOK(do&f<432X;qdsuaCAC4K7W4z!>@>8Ybms$>cQ}f z=jt-|Cn+>%?@(zbMF{f|iBU(2<;H!#RV+zR!Rs8wFO*)wFNKI~lZFK|DcHS3Qkh{0 zsWG_@2ZP085y%|Hj8Yv$G9xUql&WS$7eT^IT1*R#Dw4vWFt*>I8Z^i-W^|BIZBPxW zna5lva;y!Fu75Bd%bb2FFvvwhu5h`KD%K(C!>mF_`k+zGQE}Av!_p;vFf2nw`W|*h znJ|$QYH}Nv`8RBt!aXqfUl?~vAr(QfJqU!OkgHeM$J#4i#(UgXo#fHk|Rh3 z@3j;J%6~2)^vb3lAxH2+%;goroKZ)L>ZOQMC50?>ZD;^RoJ%GQam{u}M7`-OIrdm6 zl$P%8GDkZdP|ktX-8E^ohhXrd8RVQYVF|ot8Nw9J0#U$+0@ad<#9=BW?+9AKfsRs) z3yzv7oED77FN8rgr#ys{p(aGg7%!1~*}|tALVt|ps62)c{_#&j=xoLWGfUq*rJ6-g z3X_IlRDpyjtPLH2!Vd*%<9-8Vm`Sw^p?7}zE9<$cC@(_jjfTUl=hlU@jG1yJTLX^I z&h3bAtqK2|rDOjMW;v$@_2AX(x6dyF^U-|y9Q*vg(_z>CpPe5M@9qCxlnahjTcgCe zTz@#T!h|-eDE+)Cx@rjt8d%B#th5Zq0UYAOF~!JmKcFw*(XyC|PN z4IaXrWg%!ZFk>9eGRMc66-$(22oDE0H^lZL&p+l=#7eBYLKAO%k`Y|9cW}v)1@KlG*ZuExuS3nxdz+oM?f1$KY%Q%-neujTm(?wAxmSEI zPN&FsF0t#^+saT|-u`zP(Sd7Fm~(sn_5QyHy>ahWoPKN5bYJeEY(4+IyML6S`0{Y@ zp7a0g^yE?J{C{+OcJKe+NomJ_X`buBd_=C8h(mZ*Zvc{^p)oboUfrF!D)0P9@LI8i z3CiKG$g{Ey=B|YMZ*7n|@QX-Qblo zq^Ov2VW;-};1boGx!Zy3RDT}R;o2Rdp~AC3r-Ls?&-QM zD5P;XiFG@CcqZp8qB?{T0nk<4#|LZdjq7D=C2zG{d*HA2-nG0Hfhvg9Y&2W=3dCE2 zye-Uq`>+zM@7cT__?kX!d>E)mcO0`;c(e_m42{}FE<5H*2ClZspl!?xjy0_Y^&sl^*W8dB_9uMYJ4KzjyjUJRO)&JfupeW|6 z(|c)`G0<_Lc&in_y<@CMqX}KNwPl@RJJLIDVzhgxcLKn>rzoSnV|&xuL$@6`-bk~v zfOW)n^USV!Obe54nt!)vRDrz>!~BAcGg$~T&gquX?X~T7Aa+)B4Rqw^S7JanqN?pb{6;`rEO_dcYn)$&XmnuEAJ3(0L|K$ z9qctn{!TNy{DO%Xg@Mtq0l8m)yx7<5{0c`NVH=FEdDUoLzct{HHQTmcyQivOnpcOl z)@Hq?`gCvl^^LvtR@6H8+b>AO9;{xr0bD~V+@ISdcg;{eH8s@h$EPo(+65Mp4}WLt`9CKo$M^TYyC_F+L5)Er+-r+pd03<@A8KHb=0ILaUyNm>hw?#Cu3Tj(zc;(fP2W|0kzs_xXQ!QjVJJzNbox z<^`6J%QBs$$$xigrK~`qt!jL7a0(C=$B&~g$VJC}JfnXEyvGRcc6XFA2$2hIrT!;?5} znDMU;3Ug^?Y0rE2Mo~@f*VPj8IRW;oy#EIck4M{RlJ7i8N1w)Vjl0f^tkWyY!~rG; z&SQ1&Y<~k%5h(IRS)ug%6|z4_M=)E`4d4&w#r6Aj*sShZ3(W^NEpMJ*E+fk8J=T8N zY6_7#-%QV zFnO=-no8xwt0l)t2lsWWWh)Y5^^0;X!%nuAx%1%-W^#`Hfa|y>PptD%y@6<#n>R&> zI8uQz6uI}?>=70=$D%*cM17Kp<^bDpLVat0_rBbh`*L6Ii!c8P00960feWL006G8w Dl@Pl` diff --git a/docs/index.yaml b/docs/index.yaml index 3fad2df0c..86f0d3678 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -2,9 +2,9 @@ apiVersion: v1 entries: cron-connector: - apiVersion: v1 - created: "2023-02-14T17:16:50.406440964Z" + created: "2023-02-20T17:09:46.563264373Z" description: Trigger OpenFaaS Functions with cron - digest: 1012df724b713ed692b1d20b3845f2523c4eee889767469abc5d35d917a4c508 + digest: a8893c07dadc6b50c9bf074db4de79c85902f658e9d5e111399b879d94bd7c46 home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -23,7 +23,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.6.4.tgz version: 0.6.4 - apiVersion: v1 - created: "2023-02-14T17:16:50.406004869Z" + created: "2023-02-20T17:09:46.563057406Z" description: Trigger OpenFaaS Functions with cron digest: 468181706402bd3bd6db843fd1e1a206c189aa5406d8434cc2b72197b435a86e home: https://www.openfaas.com @@ -44,7 +44,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.6.3.tgz version: 0.6.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.40573268Z" + created: "2023-02-20T17:09:46.562862009Z" description: Trigger OpenFaaS Functions with cron digest: d44542479acd73de32f6e0d46b7c31aa0fb5818f8cb684dbc6250539528a68a5 home: https://www.openfaas.com @@ -65,7 +65,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.6.2.tgz version: 0.6.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.405485361Z" + created: "2023-02-20T17:09:46.562619371Z" description: Trigger OpenFaaS Functions with cron digest: 95005f07ed3e9d5809f4633df1eb62b9f26be0061471b4274df695dcb6880e90 home: https://www.openfaas.com @@ -86,7 +86,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.6.1.tgz version: 0.6.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.405237673Z" + created: "2023-02-20T17:09:46.562318671Z" description: Trigger OpenFaaS Functions with cron digest: 055ae8324200f1fbcbfd197143b7202b9dc28ef26c0ed25c1820a290e7d36527 home: https://www.openfaas.com @@ -107,7 +107,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.6.0.tgz version: 0.6.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.404999805Z" + created: "2023-02-20T17:09:46.56199742Z" description: Trigger OpenFaaS Functions with cron digest: 1215c535abc59f7b64b9985e43a5a927eca2f91437bb175e15d9de93333ffbd2 home: https://www.openfaas.com @@ -128,7 +128,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.5.3.tgz version: 0.5.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.404786418Z" + created: "2023-02-20T17:09:46.561749781Z" description: Trigger OpenFaaS Functions with cron digest: 6b6bbbf29f4b29587d45fec7b4ae7edc4b35aa7db97e2dfdb46eaef02fc29eb2 home: https://www.openfaas.com @@ -149,7 +149,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.5.2.tgz version: 0.5.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.40454688Z" + created: "2023-02-20T17:09:46.561507873Z" description: Trigger OpenFaaS Functions with cron digest: 4519834f17b3d735b027cc4852e861e01f6258910bf1d0706d723710d3e0b70b home: https://www.openfaas.com @@ -170,7 +170,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.5.1.tgz version: 0.5.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.404188187Z" + created: "2023-02-20T17:09:46.561258604Z" description: Trigger OpenFaaS Functions with cron digest: e049068f4ba06335414b52c66b456b8777831938df255fbd619b171fa4dd951f home: https://www.openfaas.com @@ -191,7 +191,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.5.0.tgz version: 0.5.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.403487514Z" + created: "2023-02-20T17:09:46.560997075Z" description: Trigger OpenFaaS Functions with cron digest: 36590b38cccce33bfdb4dd6554c237a8cb97a39053a08fc220363996e829f59f home: https://www.openfaas.com @@ -212,7 +212,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.3.2.tgz version: 0.3.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.402900184Z" + created: "2023-02-20T17:09:46.560738426Z" description: Trigger OpenFaaS Functions with cron digest: 16abbafe3c5d9f0b619c9c4f8e53019f88cdbc09e295925fef7002f2ec1c9b32 home: https://www.openfaas.com @@ -234,9 +234,9 @@ entries: version: 0.3.1 kafka-connector: - apiVersion: v1 - created: "2023-02-14T17:16:50.415900483Z" + created: "2023-02-20T17:09:46.57131385Z" description: Connect OpenFaaS functions to Kafka topics - digest: e5b93cb94163040a236a002080ccf0ad3e21255736f16d4bc74590075e93c564 + digest: 78cb8f0ed8c7a1fa6e3a0c75ad99b8d95849adc2e76a7e1a4ac7c5235f296a29 home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -254,7 +254,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.7.3.tgz version: 0.7.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.415435787Z" + created: "2023-02-20T17:09:46.570999679Z" description: Connect OpenFaaS functions to Kafka topics digest: af26715a204a92bc28aa6e4a4ce198f55ca2f6b5cc2c9cb7ee26e5c223459fa5 home: https://www.openfaas.com @@ -274,7 +274,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.7.2.tgz version: 0.7.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.414988862Z" + created: "2023-02-20T17:09:46.570678818Z" description: Connect OpenFaaS functions to Kafka topics digest: 7bd58059000fe9ad837c4b9b24653bd7bf1d1887b553c572053bc35c78af7059 home: https://www.openfaas.com @@ -294,7 +294,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.7.1.tgz version: 0.7.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.414541997Z" + created: "2023-02-20T17:09:46.570218932Z" description: Connect OpenFaaS functions to Kafka topics digest: 2f63695d635e944496ed17f906b43b33b4d0bed5df4f47343485f702b02612a8 home: https://www.openfaas.com @@ -314,7 +314,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.7.0.tgz version: 0.7.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.414115213Z" + created: "2023-02-20T17:09:46.569795898Z" description: Connect OpenFaaS functions to Kafka topics digest: 7c1cf7e169d22dec04d7c1458fc663e976ce0b241e16b8269511ff45cb052d0b home: https://www.openfaas.com @@ -334,7 +334,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.9.tgz version: 0.6.9 - apiVersion: v1 - created: "2023-02-14T17:16:50.41372791Z" + created: "2023-02-20T17:09:46.569377373Z" description: Connect OpenFaaS functions to Kafka topics digest: d1897dacf5c5337cf6b6dc04409298176514f9726f01174142d09ec838b23a5b home: https://www.openfaas.com @@ -354,7 +354,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.8.tgz version: 0.6.8 - apiVersion: v1 - created: "2023-02-14T17:16:50.413315176Z" + created: "2023-02-20T17:09:46.568957839Z" description: Connect OpenFaaS functions to Kafka topics digest: d3c45957183c9155593a4b4c9e5ddd7cedbd9baf84481275fdf46abf07668101 home: https://www.openfaas.com @@ -374,7 +374,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.7.tgz version: 0.6.7 - apiVersion: v1 - created: "2023-02-14T17:16:50.412234859Z" + created: "2023-02-20T17:09:46.568503223Z" description: Connect OpenFaaS functions to Kafka topics digest: 817b0286fe4c93d3192be68a9073fb27e912884bc5afcbf45dce70ac2194f9dc home: https://www.openfaas.com @@ -394,7 +394,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.6.tgz version: 0.6.6 - apiVersion: v1 - created: "2023-02-14T17:16:50.411810445Z" + created: "2023-02-20T17:09:46.56811159Z" description: Connect OpenFaaS functions to Kafka topics digest: 688955bed94ac25cde9a3b2f5d5e696637e1f0d85efe156d646848cfec70bda4 home: https://www.openfaas.com @@ -414,7 +414,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.5.tgz version: 0.6.5 - apiVersion: v1 - created: "2023-02-14T17:16:50.41137563Z" + created: "2023-02-20T17:09:46.567731577Z" description: Connect OpenFaaS functions to Kafka topics digest: 518a08a8692fb1552c37b590126d6ab8b8ca0fa87e4b37dd6df2400d0a517635 home: https://www.openfaas.com @@ -434,7 +434,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.3.tgz version: 0.6.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.410955806Z" + created: "2023-02-20T17:09:46.567401385Z" description: Connect OpenFaaS functions to Kafka topics digest: 0c9cfd59867c1c7280cac6820d918a1a89057fdaa0eeb94bb2ddd31d5b0255a0 home: https://www.openfaas.com @@ -454,7 +454,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.2.tgz version: 0.6.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.410524682Z" + created: "2023-02-20T17:09:46.567093185Z" description: Connect OpenFaaS functions to Kafka topics digest: cfe5b1af2fec3b4de339432b697170f9e79da37ce11f1c570256f0e907ba501b home: https://www.openfaas.com @@ -474,7 +474,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.1.tgz version: 0.6.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.410070516Z" + created: "2023-02-20T17:09:46.566757493Z" description: Connect OpenFaaS functions to Kafka topics digest: f76fd6b009427b0096b266e8165fd73d5da105436a166a440e4c92f84c33f08c home: https://www.openfaas.com @@ -494,7 +494,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.5.1.tgz version: 0.5.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.409718314Z" + created: "2023-02-20T17:09:46.566484104Z" description: Connect OpenFaaS functions to Kafka topics digest: 833e72c75b76b3ff22aab5bb7c99c9403fe968aad8fde32b86ea1b8cba075366 home: https://www.openfaas.com @@ -513,7 +513,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.5.0.tgz version: 0.5.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.409360252Z" + created: "2023-02-20T17:09:46.566183043Z" description: Connect OpenFaaS functions to Kafka topics digest: d7615f9848baddf4983811e2dbe8a0119e916abd4724e1ed123c15ab33953db0 home: https://www.openfaas.com @@ -534,7 +534,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.4.3.tgz version: 0.4.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.40900441Z" + created: "2023-02-20T17:09:46.565863012Z" description: Connect OpenFaaS functions to Kafka topics digest: 0dbe5b6d3f8037d394de633648d0344f4cbdb767718a61cd8f5577f95282fddf home: https://www.openfaas.com @@ -555,7 +555,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.4.2.tgz version: 0.4.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.408654838Z" + created: "2023-02-20T17:09:46.564948261Z" description: Connect OpenFaaS functions to Kafka topics digest: 5d75cf2523d96ce7b1ddf5c57669ac75eb4efda1513c5ca3b283441fe75d6f80 home: https://www.openfaas.com @@ -576,7 +576,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.4.1.tgz version: 0.4.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.408317917Z" + created: "2023-02-20T17:09:46.564714263Z" description: Connect OpenFaaS functions to Kafka topics digest: ea275aecc3d5e3444f9df0d9cb697cb62a7e97a9eb524e983d1e91f654549a1f home: https://www.openfaas.com @@ -597,7 +597,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.4.0.tgz version: 0.4.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.407973125Z" + created: "2023-02-20T17:09:46.564500786Z" description: Connect OpenFaaS functions to Kafka topics digest: 0d323f57fa97ae54fb5061cc97cab1a424966e1bf661b53d6e351cbb7c1e770c home: https://www.openfaas.com @@ -618,7 +618,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.3.0.tgz version: 0.3.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.407642934Z" + created: "2023-02-20T17:09:46.564292888Z" description: Connect OpenFaaS functions to Kafka topics digest: bfea71c611212db704e971164dbaad4a863852b040d68bbfb3f425c17294911d home: https://www.openfaas.com @@ -639,7 +639,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.2.3.tgz version: 0.2.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.407314583Z" + created: "2023-02-20T17:09:46.564081451Z" description: Connect OpenFaaS functions to Kafka topics digest: 88c657fa02ac7a0dfc1bfd2b01a8ecae2b13582fe4e6e68a4fc0121f3a3f33d0 home: https://www.openfaas.com @@ -660,7 +660,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.2.2.tgz version: 0.2.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.407106726Z" + created: "2023-02-20T17:09:46.563875094Z" description: Connect OpenFaaS functions to Kafka topics digest: 369b09a454db9b1f257e0552ee0f4d6648e1548d47a509cf699da371ae556412 home: https://www.openfaas.com @@ -681,7 +681,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.1.2.tgz version: 0.1.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.406893219Z" + created: "2023-02-20T17:09:46.563673247Z" description: Connect OpenFaaS functions to Kafka topics digest: 2a3b78d0a1b0ded8888b425d78a567ceb37d77763fc132bd5918992f43b8592a home: https://www.openfaas.com @@ -702,7 +702,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.1.1.tgz version: 0.1.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.406688822Z" + created: "2023-02-20T17:09:46.56346692Z" description: Connect OpenFaaS functions to Kafka topics digest: c745084bc749a70fdec7024f86d3d005a443ba802a68c26c937101e7bf5c942d home: https://www.openfaas.com @@ -722,9 +722,9 @@ entries: version: 0.1.0 mqtt-connector: - apiVersion: v1 - created: "2023-02-14T17:16:50.41847452Z" + created: "2023-02-20T17:09:46.573299628Z" description: Connect OpenFaaS functions to MQTT topics - digest: ace17f01e633bb29f9f827f6e22bf40927fd167a8c449116ad8061c43c65deea + digest: 8324553316a09f50bdd39bc004fe7ddeeb85710e0cf6fd6862dbe3dd68d6c6ad home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -742,7 +742,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.7.tgz version: 0.4.7 - apiVersion: v1 - created: "2023-02-14T17:16:50.418147899Z" + created: "2023-02-20T17:09:46.572832982Z" description: Connect OpenFaaS functions to MQTT topics digest: d51ea1b95387671eee9e0d7ec74890c897c6d0662e5b522695e84c42325301f6 home: https://www.openfaas.com @@ -762,7 +762,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.6.tgz version: 0.4.6 - apiVersion: v1 - created: "2023-02-14T17:16:50.41788288Z" + created: "2023-02-20T17:09:46.572651546Z" description: Connect OpenFaaS functions to MQTT topics digest: 0d36fcd2677d1e22ba9f54e90572047088aaaaf6611622bd8a82d929a0e10015 home: https://www.openfaas.com @@ -781,7 +781,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.5.tgz version: 0.4.5 - apiVersion: v1 - created: "2023-02-14T17:16:50.417611731Z" + created: "2023-02-20T17:09:46.57246893Z" description: Connect OpenFaaS functions to MQTT topics digest: be5789e807567682fa389c5a7e879660da5f281cfea9a3d2f25946be330f168e home: https://www.openfaas.com @@ -800,7 +800,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.4.tgz version: 0.4.4 - apiVersion: v1 - created: "2023-02-14T17:16:50.417334552Z" + created: "2023-02-20T17:09:46.572293984Z" description: Connect OpenFaaS functions to MQTT topics digest: a469837cda2f697a309b5512c97e0bfa536b7358b6b7b44e312877b66ae77eb2 home: https://www.openfaas.com @@ -819,7 +819,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.3.tgz version: 0.4.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.417055042Z" + created: "2023-02-20T17:09:46.572108977Z" description: Connect OpenFaaS functions to MQTT topics digest: 973e25a74f7e853c8bc1a85805083a17c355fc91d828236f40f48c5a4af7efaa home: https://www.openfaas.com @@ -838,7 +838,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.2.tgz version: 0.4.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.416768362Z" + created: "2023-02-20T17:09:46.57190922Z" description: Connect OpenFaaS functions to MQTT topics digest: f10f50fec3db6caa4953fb1f969edd3d76f3b4a88ce2e8be6bbca15b61dc67ee home: https://www.openfaas.com @@ -857,7 +857,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.1.tgz version: 0.4.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.416478763Z" + created: "2023-02-20T17:09:46.571714204Z" description: Connect OpenFaaS functions to MQTT topics digest: bf6f7ca50bf615474efe9a486f172d1cf5c45f296864d7b88afda4636e20f3ae home: https://www.openfaas.com @@ -876,7 +876,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.0.tgz version: 0.4.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.416192573Z" + created: "2023-02-20T17:09:46.571514487Z" description: Connect OpenFaaS functions to MQTT digest: 5c72894aef2b14963948c700b5a038f01faab73c430c6d4ce8daf315f72f9dfc home: https://www.openfaas.com @@ -898,9 +898,9 @@ entries: version: 0.3.1 nats-connector: - apiVersion: v1 - created: "2023-02-14T17:16:50.419826815Z" + created: "2023-02-20T17:09:46.574936425Z" description: Trigger OpenFaaS Functions from NATS Pub/Sub - digest: 0c88be4cc8b6da796a807c2a58662e1b5dc72f79d6f5d22ef09a96fc2dd6bd30 + digest: 833e816ab8c31a98e1399954aa8741109524424c248ed3587a82e73465fe2d72 home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -917,7 +917,7 @@ entries: - https://openfaas.github.io/faas-netes/nats-connector-0.3.2.tgz version: 0.3.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.419548756Z" + created: "2023-02-20T17:09:46.574705417Z" description: Trigger OpenFaaS Functions from NATS Pub/Sub digest: 8e7019430fe29bcc9e3811130893f9745037d496e42c861a58ca0f93919db9c7 home: https://www.openfaas.com @@ -936,7 +936,7 @@ entries: - https://openfaas.github.io/faas-netes/nats-connector-0.3.1.tgz version: 0.3.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.419293398Z" + created: "2023-02-20T17:09:46.574466238Z" description: Trigger OpenFaaS Functions from NATS Pub/Sub digest: 828c05dfde46fcee2a86e1772db16c6d7e59b55d0cee650ba45b68043db77adc home: https://www.openfaas.com @@ -957,7 +957,7 @@ entries: - https://openfaas.github.io/faas-netes/nats-connector-0.3.0.tgz version: 0.3.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.419038309Z" + created: "2023-02-20T17:09:46.57422423Z" description: Connect OpenFaaS functions to nats queues digest: 47267e87084bf59736a53386ff95e7576d00a82cdc63df2e640a1923cd471ad5 home: https://www.openfaas.com @@ -978,7 +978,7 @@ entries: - https://openfaas.github.io/faas-netes/nats-connector-0.1.1.tgz version: 0.1.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.418764Z" + created: "2023-02-20T17:09:46.57394206Z" description: Connect OpenFaaS functions to nats queues digest: a0bbe879f171df1f279cb1882175282a15856c418bcb9841bec09a9c7ddce073 home: https://www.openfaas.com @@ -1000,7 +1000,33 @@ entries: version: 0.1.0 openfaas: - apiVersion: v2 - created: "2023-02-14T17:16:50.546892604Z" + created: "2023-02-20T17:09:46.723305198Z" + description: OpenFaaS - Serverless Functions Made Simple + digest: 4aa8ecbd5188e43a5523f1f85e65c80ca8c78abc8942de3970d8e4913a48d1c9 + home: https://www.openfaas.com + icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png + keywords: + - serverless + - functions + - platform + - faas + maintainers: + - email: alex@openfaas.com + name: alexellis + - email: han@openfaas.com + name: welteki + - email: roesler.lucas@gmail.com + name: lucasroesler + name: openfaas + sources: + - https://github.com/openfaas/faas + - https://github.com/openfaas/faas-netes + type: application + urls: + - https://openfaas.github.io/faas-netes/openfaas-11.1.13.tgz + version: 11.1.13 + - apiVersion: v2 + created: "2023-02-20T17:09:46.720826823Z" description: OpenFaaS - Serverless Functions Made Simple digest: ff7c1452ee4a7c29fde35829eefbf607ebbfde8ed58be883ac10bc0fd0b33e90 home: https://www.openfaas.com @@ -1026,7 +1052,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.12.tgz version: 11.1.12 - apiVersion: v2 - created: "2023-02-14T17:16:50.545466066Z" + created: "2023-02-20T17:09:46.719317621Z" description: OpenFaaS - Serverless Functions Made Simple digest: 0454bcd80c9a900bb6e78210a0cd8c27a6b311ce5ed280eafe9c8a45f0ea7e6d home: https://www.openfaas.com @@ -1052,7 +1078,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.11.tgz version: 11.1.11 - apiVersion: v2 - created: "2023-02-14T17:16:50.544214694Z" + created: "2023-02-20T17:09:46.717174287Z" description: OpenFaaS - Serverless Functions Made Simple digest: c18b590242e5478d3a14a9296c704098b51af70a6524206fa9e150bbc49bda1b home: https://www.openfaas.com @@ -1078,7 +1104,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.10.tgz version: 11.1.10 - apiVersion: v2 - created: "2023-02-14T17:16:50.562828873Z" + created: "2023-02-20T17:09:46.737720574Z" description: OpenFaaS - Serverless Functions Made Simple digest: dcd282e7ad5df5b59eef124add0a9ffc5e80b6dd0593c337f34efc8c46a94a42 home: https://www.openfaas.com @@ -1104,7 +1130,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.9.tgz version: 11.1.9 - apiVersion: v2 - created: "2023-02-14T17:16:50.560866716Z" + created: "2023-02-20T17:09:46.73646657Z" description: OpenFaaS - Serverless Functions Made Simple digest: 69bc798462ab1dea1d23bdb72a3cdb24a291166c5198a40f2b46c2128025d313 home: https://www.openfaas.com @@ -1130,7 +1156,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.8.tgz version: 11.1.8 - apiVersion: v2 - created: "2023-02-14T17:16:50.559245052Z" + created: "2023-02-20T17:09:46.735200237Z" description: OpenFaaS - Serverless Functions Made Simple digest: ece31b993203a5c76a28be2679184ecb61c59dc01c0479f896fc4cc32982e243 home: https://www.openfaas.com @@ -1156,7 +1182,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.7.tgz version: 11.1.7 - apiVersion: v2 - created: "2023-02-14T17:16:50.556732337Z" + created: "2023-02-20T17:09:46.733437966Z" description: OpenFaaS - Serverless Functions Made Simple digest: 1df95350fde8e0525dc56a59278a00fd86cf6df40b183e4eb45091b461cb7f33 home: https://www.openfaas.com @@ -1182,7 +1208,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.6.tgz version: 11.1.6 - apiVersion: v2 - created: "2023-02-14T17:16:50.554735079Z" + created: "2023-02-20T17:09:46.730885809Z" description: OpenFaaS - Serverless Functions Made Simple digest: bd146f496f2bf985b5354d4c1ea43a9561752d07b8db851f290eb52e1baa303f home: https://www.openfaas.com @@ -1208,7 +1234,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.5.tgz version: 11.1.5 - apiVersion: v2 - created: "2023-02-14T17:16:50.552738472Z" + created: "2023-02-20T17:09:46.728934581Z" description: OpenFaaS - Serverless Functions Made Simple digest: 0193ce6a6b68b17bf8a63915f53da6a73248401c89a0373e43c92cbd46c3d07b home: https://www.openfaas.com @@ -1234,7 +1260,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.4.tgz version: 11.1.4 - apiVersion: v2 - created: "2023-02-14T17:16:50.550725384Z" + created: "2023-02-20T17:09:46.727063267Z" description: OpenFaaS - Serverless Functions Made Simple digest: 3184c6a4a1407567860df213c65d5f318c2b89d202e342666b4da8c57f349ebe home: https://www.openfaas.com @@ -1260,7 +1286,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.3.tgz version: 11.1.3 - apiVersion: v2 - created: "2023-02-14T17:16:50.548149837Z" + created: "2023-02-20T17:09:46.725137901Z" description: OpenFaaS - Serverless Functions Made Simple digest: 4a3138c3dd6ec4f1b72693d232552b7072b4e2e5630ec6230d91d9d92fee24b7 home: https://www.openfaas.com @@ -1286,7 +1312,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.2.tgz version: 11.1.2 - apiVersion: v2 - created: "2023-02-14T17:16:50.542853048Z" + created: "2023-02-20T17:09:46.714553287Z" description: OpenFaaS - Serverless Functions Made Simple digest: 213d2eab67a345646a842296ad2870f5096fa20a8125c7ee57b1570790f9cbe9 home: https://www.openfaas.com @@ -1312,7 +1338,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.1.tgz version: 11.1.1 - apiVersion: v2 - created: "2023-02-14T17:16:50.54054956Z" + created: "2023-02-20T17:09:46.711540953Z" description: OpenFaaS - Serverless Functions Made Simple digest: 2c66050274c9e7cc2cdb1aabc53ecece83bf451ba44eb964fb2c5e66419ab26b home: https://www.openfaas.com @@ -1338,7 +1364,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.0.tgz version: 11.1.0 - apiVersion: v2 - created: "2023-02-14T17:16:50.525046477Z" + created: "2023-02-20T17:09:46.693844465Z" description: OpenFaaS - Serverless Functions Made Simple digest: ee34ee874376e6495bcc677a66f081cb637c95d156f2f516bf784116f6a3c3f2 home: https://www.openfaas.com @@ -1364,7 +1390,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.11.tgz version: 11.0.11 - apiVersion: v2 - created: "2023-02-14T17:16:50.523492835Z" + created: "2023-02-20T17:09:46.691836976Z" description: OpenFaaS - Serverless Functions Made Simple digest: e01fbc73ae8c914b7f8eeec96e3facf91b4ba815c42fc34d92e6ec7005046114 home: https://www.openfaas.com @@ -1390,7 +1416,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.10.tgz version: 11.0.10 - apiVersion: v2 - created: "2023-02-14T17:16:50.538985567Z" + created: "2023-02-20T17:09:46.709956799Z" description: OpenFaaS - Serverless Functions Made Simple digest: acf5bcd2445619482509fa3ce0770fa4e610c4fcb0da65abed261e6409390374 home: https://www.openfaas.com @@ -1416,7 +1442,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.9.tgz version: 11.0.9 - apiVersion: v2 - created: "2023-02-14T17:16:50.537453126Z" + created: "2023-02-20T17:09:46.707931479Z" description: OpenFaaS - Serverless Functions Made Simple digest: 3919b1033d2027b8de16fbcc5edec6db4c4a587718d3440ec50573d42dcb1776 home: https://www.openfaas.com @@ -1442,7 +1468,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.8.tgz version: 11.0.8 - apiVersion: v2 - created: "2023-02-14T17:16:50.53579714Z" + created: "2023-02-20T17:09:46.70592238Z" description: OpenFaaS - Serverless Functions Made Simple digest: 941730bbe823d5d8434f9fc6905c8538b9b786e3872c842826afc3c680bd79d0 home: https://www.openfaas.com @@ -1468,7 +1494,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.7.tgz version: 11.0.7 - apiVersion: v2 - created: "2023-02-14T17:16:50.534145835Z" + created: "2023-02-20T17:09:46.704006394Z" description: OpenFaaS - Serverless Functions Made Simple digest: b6591abb8694ce4741d9e3f93625d158dd83845f51211cf24120069557b843cc home: https://www.openfaas.com @@ -1494,7 +1520,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.6.tgz version: 11.0.6 - apiVersion: v2 - created: "2023-02-14T17:16:50.53194495Z" + created: "2023-02-20T17:09:46.70185589Z" description: OpenFaaS - Serverless Functions Made Simple digest: 5dbebd2eb7d46307d80d3f5f2404bfc2b13c9ff2b810c7f091df3791aec0052b home: https://www.openfaas.com @@ -1520,7 +1546,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.5.tgz version: 11.0.5 - apiVersion: v2 - created: "2023-02-14T17:16:50.530420399Z" + created: "2023-02-20T17:09:46.699132697Z" description: OpenFaaS - Serverless Functions Made Simple digest: 3755d9c54dc6d95b15a881213b855ef5d699ba66c7c8c1fe7eb4de4287a5fff2 home: https://www.openfaas.com @@ -1546,7 +1572,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.4.tgz version: 11.0.4 - apiVersion: v2 - created: "2023-02-14T17:16:50.528570596Z" + created: "2023-02-20T17:09:46.697315184Z" description: OpenFaaS - Serverless Functions Made Simple digest: c64f5c673fa19fb4794c93a11a64005d0b13b01d7b9df0a0ff837da7eb18367d home: https://www.openfaas.com @@ -1572,7 +1598,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.3.tgz version: 11.0.3 - apiVersion: v2 - created: "2023-02-14T17:16:50.526850048Z" + created: "2023-02-20T17:09:46.695500022Z" description: OpenFaaS - Serverless Functions Made Simple digest: 015456d5d25caaa4ec4f272fa852f2e8a0255838b8a8f766d1930ee1bfd61029 home: https://www.openfaas.com @@ -1598,7 +1624,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.2.tgz version: 11.0.2 - apiVersion: v2 - created: "2023-02-14T17:16:50.522278764Z" + created: "2023-02-20T17:09:46.69023157Z" description: OpenFaaS - Serverless Functions Made Simple digest: 1043afa0b824082ebf574438f7abb9dcf6f305c9b0b8fa280302af3682fce6d0 home: https://www.openfaas.com @@ -1624,7 +1650,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.1.tgz version: 11.0.1 - apiVersion: v2 - created: "2023-02-14T17:16:50.521083733Z" + created: "2023-02-20T17:09:46.688280593Z" description: OpenFaaS - Serverless Functions Made Simple digest: 309ea32c72e0b426d7aaddc36e56c50b9bada81ce3c305f699e5ea3cfb33d4d4 home: https://www.openfaas.com @@ -1650,7 +1676,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.0.tgz version: 11.0.0 - apiVersion: v2 - created: "2023-02-14T17:16:50.504728082Z" + created: "2023-02-20T17:09:46.668487903Z" description: OpenFaaS - Serverless Functions Made Simple digest: 37ae0a50f9d95702b7318e2373b54ea9797946f38d44b147d23326adfe94de38 home: https://www.openfaas.com @@ -1676,7 +1702,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.13.tgz version: 10.2.13 - apiVersion: v2 - created: "2023-02-14T17:16:50.502696893Z" + created: "2023-02-20T17:09:46.666738752Z" description: OpenFaaS - Serverless Functions Made Simple digest: cee1804357e5162c413b030be086a6a3ccfe4b02332b49faa1de4bdfc5818d64 home: https://www.openfaas.com @@ -1702,7 +1728,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.12.tgz version: 10.2.12 - apiVersion: v2 - created: "2023-02-14T17:16:50.50084714Z" + created: "2023-02-20T17:09:46.665113167Z" description: OpenFaaS - Serverless Functions Made Simple digest: 8cface2b5d5a39f365c904b8511fa0baf0015d666e8c314239fb5bfbee55c38a home: https://www.openfaas.com @@ -1728,7 +1754,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.11.tgz version: 10.2.11 - apiVersion: v2 - created: "2023-02-14T17:16:50.498967747Z" + created: "2023-02-20T17:09:46.663276793Z" description: OpenFaaS - Serverless Functions Made Simple digest: 56be99b85f4734031819defd9d825459421f1fd0555fb3909d379b90ede54a60 home: https://www.openfaas.com @@ -1754,7 +1780,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.10.tgz version: 10.2.10 - apiVersion: v2 - created: "2023-02-14T17:16:50.519891463Z" + created: "2023-02-20T17:09:46.686366277Z" description: OpenFaaS - Serverless Functions Made Simple digest: c35fe55ca20c6f1ef36780fa1ad0d0cea03840caec14bf4327e5e49d0f54d88b home: https://www.openfaas.com @@ -1780,7 +1806,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.9.tgz version: 10.2.9 - apiVersion: v2 - created: "2023-02-14T17:16:50.51861871Z" + created: "2023-02-20T17:09:46.684484553Z" description: OpenFaaS - Serverless Functions Made Simple digest: 210ee87dc07d061ccae9a0399f6badd5c6cf491877918783892aa35e9654090c home: https://www.openfaas.com @@ -1806,7 +1832,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.8.tgz version: 10.2.8 - apiVersion: v2 - created: "2023-02-14T17:16:50.516872951Z" + created: "2023-02-20T17:09:46.682346109Z" description: OpenFaaS - Serverless Functions Made Simple digest: bc85d497a340a378d106a5e4ff353b655bf79533a7e63e08cc12f703347364f0 home: https://www.openfaas.com @@ -1832,7 +1858,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.7.tgz version: 10.2.7 - apiVersion: v2 - created: "2023-02-14T17:16:50.515704982Z" + created: "2023-02-20T17:09:46.679646336Z" description: OpenFaaS - Serverless Functions Made Simple digest: a1c6244819534d374d7de24a0c0027d6a8d1118e5bec16cda4c377dfd995ffb3 home: https://www.openfaas.com @@ -1858,7 +1884,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.6.tgz version: 10.2.6 - apiVersion: v2 - created: "2023-02-14T17:16:50.513660963Z" + created: "2023-02-20T17:09:46.677233073Z" description: OpenFaaS - Serverless Functions Made Simple digest: 7a50e3ab2c63164c980024c1eb5ac52dd94761b7ec2df266f5d697c024b81815 home: https://www.openfaas.com @@ -1884,7 +1910,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.5.tgz version: 10.2.5 - apiVersion: v2 - created: "2023-02-14T17:16:50.511321263Z" + created: "2023-02-20T17:09:46.674909933Z" description: OpenFaaS - Serverless Functions Made Simple digest: 10246e6f48b06bdfcca75269775a36f48fd07f555eb3ae31a9f60da708322e7f home: https://www.openfaas.com @@ -1910,7 +1936,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.4.tgz version: 10.2.4 - apiVersion: v2 - created: "2023-02-14T17:16:50.508628173Z" + created: "2023-02-20T17:09:46.671980673Z" description: OpenFaaS - Serverless Functions Made Simple digest: c314cc6ce2fd0f7c723e27ff6d8b5aa21058b926ae583964333f7447a225dbab home: https://www.openfaas.com @@ -1936,7 +1962,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.3.tgz version: 10.2.3 - apiVersion: v2 - created: "2023-02-14T17:16:50.50646635Z" + created: "2023-02-20T17:09:46.670187571Z" description: OpenFaaS - Serverless Functions Made Simple digest: ca128987afb7240ceb9530330a58787985a42d8d8235263dbc20bab8b68198a0 home: https://www.openfaas.com @@ -1962,7 +1988,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.2.tgz version: 10.2.2 - apiVersion: v2 - created: "2023-02-14T17:16:50.496867866Z" + created: "2023-02-20T17:09:46.661770352Z" description: OpenFaaS - Serverless Functions Made Simple digest: 7317c7ebec91cdf523b12ca1b89cc50fd7308d1a835d97ea26f1295161e0e60f home: https://www.openfaas.com @@ -1988,7 +2014,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.1.tgz version: 10.2.1 - apiVersion: v2 - created: "2023-02-14T17:16:50.49579533Z" + created: "2023-02-20T17:09:46.660056353Z" description: OpenFaaS - Serverless Functions Made Simple digest: ca8263eb1b14fc1ce3c3c921481e950c4102b685abf91a0961cb74c85d1ec506 home: https://www.openfaas.com @@ -2014,7 +2040,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.0.tgz version: 10.2.0 - apiVersion: v2 - created: "2023-02-14T17:16:50.494399053Z" + created: "2023-02-20T17:09:46.658351084Z" description: OpenFaaS - Serverless Functions Made Simple digest: 2f8cf5f1986b1f75d748d1f04ba8abec9592ad2d5c55fd43ccdd95f7aa4cbe9b home: https://www.openfaas.com @@ -2040,7 +2066,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.1.4.tgz version: 10.1.4 - apiVersion: v2 - created: "2023-02-14T17:16:50.492703125Z" + created: "2023-02-20T17:09:46.656874603Z" description: OpenFaaS - Serverless Functions Made Simple digest: 77926bf5f98a47a5e44c3fc9276728a2e7f2a66c5d2add6d0c0048bc2a523ee1 home: https://www.openfaas.com @@ -2066,7 +2092,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.1.3.tgz version: 10.1.3 - apiVersion: v2 - created: "2023-02-14T17:16:50.491293318Z" + created: "2023-02-20T17:09:46.654472681Z" description: OpenFaaS - Serverless Functions Made Simple digest: 1529a7bc0f788125c5e10bd3fdb95b9f1191c715dee079ad2c84162c59d7334e home: https://www.openfaas.com @@ -2092,7 +2118,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.1.2.tgz version: 10.1.2 - apiVersion: v2 - created: "2023-02-14T17:16:50.489346252Z" + created: "2023-02-20T17:09:46.652758621Z" description: OpenFaaS - Serverless Functions Made Simple digest: 1e94ac1bf91b182bc4a70aa53017aadf280d9f67a336f63eb23c93591df8cee3 home: https://www.openfaas.com @@ -2118,7 +2144,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.1.1.tgz version: 10.1.1 - apiVersion: v2 - created: "2023-02-14T17:16:50.488279256Z" + created: "2023-02-20T17:09:46.651087024Z" description: OpenFaaS - Serverless Functions Made Simple digest: 050eda187d1303f42bb6f8200b790c6346beef6a0b1dc868335a44cc4bacbce4 home: https://www.openfaas.com @@ -2144,7 +2170,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.1.0.tgz version: 10.1.0 - apiVersion: v2 - created: "2023-02-14T17:16:50.479715497Z" + created: "2023-02-20T17:09:46.638504081Z" description: OpenFaaS - Serverless Functions Made Simple digest: 5053a6af09c82dca40d1afd79bc66d00ad822ca3da00fb8f1395f58b3a297f40 home: https://www.openfaas.com @@ -2170,7 +2196,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.28.tgz version: 10.0.28 - apiVersion: v2 - created: "2023-02-14T17:16:50.478581219Z" + created: "2023-02-20T17:09:46.636140969Z" description: OpenFaaS - Serverless Functions Made Simple digest: e8c7e565a72f72a22a79646cb08f5612a13e06f6a58b81b4df4886af42bf99dd home: https://www.openfaas.com @@ -2196,7 +2222,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.27.tgz version: 10.0.27 - apiVersion: v2 - created: "2023-02-14T17:16:50.476814549Z" + created: "2023-02-20T17:09:46.634316107Z" description: OpenFaaS - Serverless Functions Made Simple digest: aa5fcf1bf0c25edd1b3127a4fe6619bdf68298263a6ab7066d81e1669bb360f7 home: https://www.openfaas.com @@ -2222,7 +2248,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.25.tgz version: 10.0.25 - apiVersion: v2 - created: "2023-02-14T17:16:50.475682531Z" + created: "2023-02-20T17:09:46.632542126Z" description: OpenFaaS - Serverless Functions Made Simple digest: fefb60a72623d54906de3a9df36a9170a13bedad33413f36279b8696d4f0c30f home: https://www.openfaas.com @@ -2248,7 +2274,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.24.tgz version: 10.0.24 - apiVersion: v2 - created: "2023-02-14T17:16:50.4741759Z" + created: "2023-02-20T17:09:46.630711983Z" description: OpenFaaS - Serverless Functions Made Simple digest: 651ab07949817e0649bbaff973f30619b4561c2943f22f30345eb5f4a100ced6 home: https://www.openfaas.com @@ -2272,7 +2298,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.23.tgz version: 10.0.23 - apiVersion: v2 - created: "2023-02-14T17:16:50.472552735Z" + created: "2023-02-20T17:09:46.628825648Z" description: OpenFaaS - Serverless Functions Made Simple digest: 758a7bf0a689a278236a26c01e3475ffb9f04244539e3db4b0283be6070fcb93 home: https://www.openfaas.com @@ -2296,7 +2322,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.22.tgz version: 10.0.22 - apiVersion: v2 - created: "2023-02-14T17:16:50.470932791Z" + created: "2023-02-20T17:09:46.62657577Z" description: OpenFaaS - Serverless Functions Made Simple digest: ee87efd307cdd3c4b0a8ec84b6c5290d919aea00f83ea074b7e030b1c6fd6165 home: https://www.openfaas.com @@ -2320,7 +2346,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.21.tgz version: 10.0.21 - apiVersion: v2 - created: "2023-02-14T17:16:50.469487532Z" + created: "2023-02-20T17:09:46.624917313Z" description: OpenFaaS - Serverless Functions Made Simple digest: ade9365e4b26cd116e58fbe9320f7aeaf201363c960ef49bfcf7b1463c117083 home: https://www.openfaas.com @@ -2344,7 +2370,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.20.tgz version: 10.0.20 - apiVersion: v2 - created: "2023-02-14T17:16:50.465552859Z" + created: "2023-02-20T17:09:46.621653111Z" description: OpenFaaS - Serverless Functions Made Simple digest: c84eaae4d8715722dc2ed628f652ef139826f3eb67ebdc8b5665eec5c6120bdb home: https://www.openfaas.com @@ -2368,7 +2394,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.19.tgz version: 10.0.19 - apiVersion: v2 - created: "2023-02-14T17:16:50.463969935Z" + created: "2023-02-20T17:09:46.620350946Z" description: OpenFaaS - Serverless Functions Made Simple digest: 1c0248fc03c0179f63786278239e2fdc3c7a1b23bcf549b9f44e88169167af1c home: https://www.openfaas.com @@ -2392,7 +2418,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.17.tgz version: 10.0.17 - apiVersion: v2 - created: "2023-02-14T17:16:50.462410533Z" + created: "2023-02-20T17:09:46.618342197Z" description: OpenFaaS - Serverless Functions Made Simple digest: dfe550333fcee30a8533cd0352469c1115da753f41f971d760ec8892e78fbc33 home: https://www.openfaas.com @@ -2416,7 +2442,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.16.tgz version: 10.0.16 - apiVersion: v2 - created: "2023-02-14T17:16:50.460918112Z" + created: "2023-02-20T17:09:46.616722842Z" description: OpenFaaS - Serverless Functions Made Simple digest: 6f6cc2fc7d5dffd8434e152e459122c82703bb7bd8e27e71b5f8c51ba3d4d825 home: https://www.openfaas.com @@ -2440,7 +2466,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.15.tgz version: 10.0.15 - apiVersion: v2 - created: "2023-02-14T17:16:50.45906495Z" + created: "2023-02-20T17:09:46.615073995Z" description: OpenFaaS - Serverless Functions Made Simple digest: ce8930519796651c8a73d2c1428d218f71294fb5325404181d452b05c185f9ba home: https://www.openfaas.com @@ -2464,7 +2490,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.14.tgz version: 10.0.14 - apiVersion: v2 - created: "2023-02-14T17:16:50.457343962Z" + created: "2023-02-20T17:09:46.61347755Z" description: OpenFaaS - Serverless Functions Made Simple digest: b0a3bab45a6e21c67686c291db81217b969e884223f27f61cebd8f6db7629fbc home: https://www.openfaas.com @@ -2488,7 +2514,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.13.tgz version: 10.0.13 - apiVersion: v2 - created: "2023-02-14T17:16:50.455400286Z" + created: "2023-02-20T17:09:46.612071532Z" description: OpenFaaS - Serverless Functions Made Simple digest: f9904174431dc0e792d57e2c686e52c9a5b5ee0b78aedec047d4c143515628e3 home: https://www.openfaas.com @@ -2512,7 +2538,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.12.tgz version: 10.0.12 - apiVersion: v2 - created: "2023-02-14T17:16:50.453394828Z" + created: "2023-02-20T17:09:46.61085612Z" description: OpenFaaS - Serverless Functions Made Simple digest: 3affb5ae8852bfe150a1888c6e9ee4ae3e4d166f996d1328ee5f457409682cae home: https://www.openfaas.com @@ -2536,7 +2562,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.11.tgz version: 10.0.11 - apiVersion: v2 - created: "2023-02-14T17:16:50.45137223Z" + created: "2023-02-20T17:09:46.608509469Z" description: OpenFaaS - Serverless Functions Made Simple digest: 85ef8245e7b8c7949983af66c29aa9141e6fdf560d8e218f6b912054266e7093 home: https://www.openfaas.com @@ -2560,7 +2586,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.10.tgz version: 10.0.10 - apiVersion: v2 - created: "2023-02-14T17:16:50.487244841Z" + created: "2023-02-20T17:09:46.649413716Z" description: OpenFaaS - Serverless Functions Made Simple digest: 71627b67840be8d360d37fd20c6d4c13d906a4a9b75eb014df27a87f87872485 home: https://www.openfaas.com @@ -2584,7 +2610,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.9.tgz version: 10.0.9 - apiVersion: v2 - created: "2023-02-14T17:16:50.486265978Z" + created: "2023-02-20T17:09:46.648180273Z" description: OpenFaaS - Serverless Functions Made Simple digest: 082b13a8a75f7e6c7a1c86450d1907b29c6f9d31cbc836b84ec31915d6c22d5e home: https://www.openfaas.com @@ -2608,7 +2634,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.8.tgz version: 10.0.8 - apiVersion: v2 - created: "2023-02-14T17:16:50.485285165Z" + created: "2023-02-20T17:09:46.646376621Z" description: OpenFaaS - Serverless Functions Made Simple digest: 5c6ac52c5d2a28e11f67a9f241ac93e520f998c2595d877522123e5634a87547 home: https://www.openfaas.com @@ -2632,7 +2658,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.7.tgz version: 10.0.7 - apiVersion: v2 - created: "2023-02-14T17:16:50.484275461Z" + created: "2023-02-20T17:09:46.644762746Z" description: OpenFaaS - Serverless Functions Made Simple digest: e024848f68ffe4f6ac10140c0621094918fb9dd419bcf639deaa62c86feb7b08 home: https://www.openfaas.com @@ -2656,7 +2682,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.6.tgz version: 10.0.6 - apiVersion: v2 - created: "2023-02-14T17:16:50.482621805Z" + created: "2023-02-20T17:09:46.643262974Z" description: OpenFaaS - Serverless Functions Made Simple digest: ee5390106602108ca86c6f735dfb4cd01f2b687501b09034fa86bd4ee9028fff home: https://www.openfaas.com @@ -2680,7 +2706,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.5.tgz version: 10.0.5 - apiVersion: v2 - created: "2023-02-14T17:16:50.481647612Z" + created: "2023-02-20T17:09:46.641700541Z" description: OpenFaaS - Serverless Functions Made Simple digest: cc8453bd258d392a3a7a7a454c420809de9a663ba5c98a04bfd805b56265bfe7 home: https://www.openfaas.com @@ -2704,7 +2730,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.4.tgz version: 10.0.4 - apiVersion: v2 - created: "2023-02-14T17:16:50.480673879Z" + created: "2023-02-20T17:09:46.640118786Z" description: OpenFaaS - Serverless Functions Made Simple digest: 396bfb83c37d55f995ba2a58a939db39fb00955fb2bd97fe3cb606a5c251aad1 home: https://www.openfaas.com @@ -2728,7 +2754,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.3.tgz version: 10.0.3 - apiVersion: v2 - created: "2023-02-14T17:16:50.467126522Z" + created: "2023-02-20T17:09:46.623245336Z" description: OpenFaaS - Serverless Functions Made Simple digest: f03774cdfffa47400bd4952342dea21cea1e81076135d5a4c7ed330b3276d82d home: https://www.openfaas.com @@ -2752,7 +2778,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.2.tgz version: 10.0.2 - apiVersion: v2 - created: "2023-02-14T17:16:50.449330981Z" + created: "2023-02-20T17:09:46.606929215Z" description: OpenFaaS - Serverless Functions Made Simple digest: 78228ec7d71f7c61e64c1c6db1a1ddeba4de730ee9409ca5cbdefbb20c3fb8ba home: https://www.openfaas.com @@ -2776,7 +2802,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.1.tgz version: 10.0.1 - apiVersion: v2 - created: "2023-02-14T17:16:50.446603659Z" + created: "2023-02-20T17:09:46.605261437Z" description: OpenFaaS - Serverless Functions Made Simple digest: 608d37100a2008cefd74a69793482b8cdd35d6755cff75b56005ffb83d8faf4a home: https://www.openfaas.com @@ -2800,7 +2826,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.0.tgz version: 10.0.0 - apiVersion: v2 - created: "2023-02-14T17:16:50.730291235Z" + created: "2023-02-20T17:09:46.897668296Z" description: OpenFaaS - Serverless Functions Made Simple digest: c7195a933e3ec516c959986f7ac3bdb6bf1659fdf484e41fa577072e6a30f760 home: https://www.openfaas.com @@ -2826,7 +2852,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-9.0.2.tgz version: 9.0.2 - apiVersion: v2 - created: "2023-02-14T17:16:50.728857547Z" + created: "2023-02-20T17:09:46.896078861Z" description: OpenFaaS - Serverless Functions Made Simple digest: b6c705b1e61b4af6abaaf64129ed8568831d6daa9fc73ab8acc59b045746cfeb home: https://www.openfaas.com @@ -2852,7 +2878,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-9.0.1.tgz version: 9.0.1 - apiVersion: v2 - created: "2023-02-14T17:16:50.727597794Z" + created: "2023-02-20T17:09:46.894472506Z" description: OpenFaaS - Serverless Functions Made Simple digest: cd6d569f2d3cd5176e08a4e81b2b8b8248a6ccffdfd9fc1b1914ae208ba035e6 home: https://www.openfaas.com @@ -2878,7 +2904,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-9.0.0.tgz version: 9.0.0 - apiVersion: v2 - created: "2023-02-14T17:16:50.726381073Z" + created: "2023-02-20T17:09:46.893020996Z" description: OpenFaaS - Serverless Functions Made Simple digest: 3091976030ac3b2043f351eb72182410bb75a884c79327e117b82f7605bbd8ec home: https://www.openfaas.com @@ -2904,7 +2930,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.1.3.tgz version: 8.1.3 - apiVersion: v2 - created: "2023-02-14T17:16:50.725078999Z" + created: "2023-02-20T17:09:46.891234095Z" description: OpenFaaS - Serverless Functions Made Simple digest: 28ace538f03ddbe01d41e683863a318718dc957feac5523ad36cdbe25a614360 home: https://www.openfaas.com @@ -2930,7 +2956,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.1.2.tgz version: 8.1.2 - apiVersion: v2 - created: "2023-02-14T17:16:50.723824577Z" + created: "2023-02-20T17:09:46.889723943Z" description: OpenFaaS - Serverless Functions Made Simple digest: d62605f5f277455c9c5ab3c977fd3b4edc3dae804374ebf4a6b912e27c5a04c4 home: https://www.openfaas.com @@ -2956,7 +2982,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.1.1.tgz version: 8.1.1 - apiVersion: v2 - created: "2023-02-14T17:16:50.722038856Z" + created: "2023-02-20T17:09:46.887795956Z" description: OpenFaaS - Serverless Functions Made Simple digest: 4358371100066f56747c6ad9709dbed08144de5b993df8753497281344aaef75 home: https://www.openfaas.com @@ -2982,7 +3008,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.1.0.tgz version: 8.1.0 - apiVersion: v2 - created: "2023-02-14T17:16:50.721059003Z" + created: "2023-02-20T17:09:46.885556769Z" description: OpenFaaS - Serverless Functions Made Simple digest: fa5fc22434f55e663e1c6ea4f4d939a2aaef07d4bba285568615934b344779fa home: https://www.openfaas.com @@ -3008,7 +3034,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.7.tgz version: 8.0.7 - apiVersion: v2 - created: "2023-02-14T17:16:50.720107601Z" + created: "2023-02-20T17:09:46.883523629Z" description: OpenFaaS - Serverless Functions Made Simple digest: 768b1ab76dadbe2921faeb76afb09a3c407850ecb5ec4ce0bd84f18c84369baa home: https://www.openfaas.com @@ -3034,7 +3060,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.6.tgz version: 8.0.6 - apiVersion: v2 - created: "2023-02-14T17:16:50.719150039Z" + created: "2023-02-20T17:09:46.881093756Z" description: OpenFaaS - Serverless Functions Made Simple digest: ea89690161e44b0dd6d590622a34f10b72a472ef0ccbc11c99437a4ae4334742 home: https://www.openfaas.com @@ -3060,7 +3086,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.5.tgz version: 8.0.5 - apiVersion: v2 - created: "2023-02-14T17:16:50.718159365Z" + created: "2023-02-20T17:09:46.880120722Z" description: OpenFaaS - Serverless Functions Made Simple digest: cbc2353db6915574d700b55d1ced7ef0ed18569e906ad2345854ba7e3c850b44 home: https://www.openfaas.com @@ -3086,7 +3112,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.4.tgz version: 8.0.4 - apiVersion: v2 - created: "2023-02-14T17:16:50.717205113Z" + created: "2023-02-20T17:09:46.879115488Z" description: OpenFaaS - Serverless Functions Made Simple digest: 966e48f7955f543a85b688bad540ee5189b50f83b08a2a36e70365ea5208a13a home: https://www.openfaas.com @@ -3112,7 +3138,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.3.tgz version: 8.0.3 - apiVersion: v2 - created: "2023-02-14T17:16:50.716173779Z" + created: "2023-02-20T17:09:46.877779442Z" description: OpenFaaS - Serverless Functions Made Simple digest: 79a22450a575a463cfd8ccdc0149f286411108401ca4e56c264e94ea9d8fa68e home: https://www.openfaas.com @@ -3138,7 +3164,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.2.tgz version: 8.0.2 - apiVersion: v2 - created: "2023-02-14T17:16:50.714352798Z" + created: "2023-02-20T17:09:46.876301411Z" description: OpenFaaS - Serverless Functions Made Simple digest: aa440cb36e8a6021290500c5bbe2ef73d26e9ec8a903a02d81c3ac0d1e0f8f6d home: https://www.openfaas.com @@ -3164,7 +3190,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.1.tgz version: 8.0.1 - apiVersion: v2 - created: "2023-02-14T17:16:50.713128256Z" + created: "2023-02-20T17:09:46.874796669Z" description: OpenFaaS - Serverless Functions Made Simple digest: a0c8fd7ca435daf758dff635a834cd49d5d01559efec554ac852d8f6df99ee1d home: https://www.openfaas.com @@ -3190,7 +3216,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.0.tgz version: 8.0.0 - apiVersion: v2 - created: "2023-02-14T17:16:50.711959597Z" + created: "2023-02-20T17:09:46.873463204Z" description: OpenFaaS - Serverless Functions Made Simple digest: 2b93bb822ea558d78f6fc44c0dae5dde891cf92a44913693691bfd04cdbe2c73 home: https://www.openfaas.com @@ -3216,7 +3242,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.4.4.tgz version: 7.4.4 - apiVersion: v2 - created: "2023-02-14T17:16:50.710794327Z" + created: "2023-02-20T17:09:46.870953657Z" description: OpenFaaS - Serverless Functions Made Simple digest: 98fa1c88d41e6ce1406a0876c3c8cf3192c1142242a99180d77278d38ab198b5 home: https://www.openfaas.com @@ -3242,7 +3268,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.4.3.tgz version: 7.4.3 - apiVersion: v2 - created: "2023-02-14T17:16:50.709598717Z" + created: "2023-02-20T17:09:46.869359272Z" description: OpenFaaS - Serverless Functions Made Simple digest: 382031dd362c5bec8ba69c7b44ce7c750ad8653016b2daf321d498131630d537 home: https://www.openfaas.com @@ -3268,7 +3294,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.4.2.tgz version: 7.4.2 - apiVersion: v2 - created: "2023-02-14T17:16:50.708377706Z" + created: "2023-02-20T17:09:46.867789978Z" description: OpenFaaS - Serverless Functions Made Simple digest: f7c35ea485fa1bab40e98253dfe93789bea79e6b993eb1ce8e86be11c581516b home: https://www.openfaas.com @@ -3294,7 +3320,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.4.1.tgz version: 7.4.1 - apiVersion: v2 - created: "2023-02-14T17:16:50.706047907Z" + created: "2023-02-20T17:09:46.866190783Z" description: OpenFaaS - Serverless Functions Made Simple digest: 887fd25412847c689ac3c4d13eb1a34f7e853ea74a205041420efe95a368731a home: https://www.openfaas.com @@ -3320,7 +3346,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.4.0.tgz version: 7.4.0 - apiVersion: v2 - created: "2023-02-14T17:16:50.704459303Z" + created: "2023-02-20T17:09:46.864567367Z" description: OpenFaaS - Serverless Functions Made Simple digest: 19c3928b9847837212a2a70b68713f9ec9a8f640e576ba05ba7295e5581e3250 home: https://www.openfaas.com @@ -3346,7 +3372,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.3.2.tgz version: 7.3.2 - apiVersion: v2 - created: "2023-02-14T17:16:50.702905141Z" + created: "2023-02-20T17:09:46.862389802Z" description: OpenFaaS - Serverless Functions Made Simple digest: bdb550735abf96a6b0780e6c0748c898f047aa448db9b664e01283650e602c49 home: https://www.openfaas.com @@ -3372,7 +3398,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.3.1.tgz version: 7.3.1 - apiVersion: v2 - created: "2023-02-14T17:16:50.701336378Z" + created: "2023-02-20T17:09:46.861416808Z" description: OpenFaaS - Serverless Functions Made Simple digest: f1c59f0e9c4a017519e3e89a0a8d74c4c198571ff6da2dda312a6a30478eb439 home: https://www.openfaas.com @@ -3398,7 +3424,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.3.0.tgz version: 7.3.0 - apiVersion: v2 - created: "2023-02-14T17:16:50.699714603Z" + created: "2023-02-20T17:09:46.860491717Z" description: OpenFaaS - Serverless Functions Made Simple digest: f5add7a2802d4520c5edcf3e0fe6e9b142182534fd3a06fe00b9e0e2f0600dab home: https://www.openfaas.com @@ -3424,7 +3450,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.8.tgz version: 7.2.8 - apiVersion: v2 - created: "2023-02-14T17:16:50.698094598Z" + created: "2023-02-20T17:09:46.859581555Z" description: OpenFaaS - Serverless Functions Made Simple digest: 7534e1ee604b6e5d2d57c1a3758c39fa40a3722097e0474fc741abff9d0e393a home: https://www.openfaas.com @@ -3450,7 +3476,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.7.tgz version: 7.2.7 - apiVersion: v2 - created: "2023-02-14T17:16:50.696087641Z" + created: "2023-02-20T17:09:46.858616912Z" description: OpenFaaS - Serverless Functions Made Simple digest: 7d007708e7e1671c420e00f22dd64ae0d50fdb7ff953c9c24a52e7417343bd97 home: https://www.openfaas.com @@ -3476,7 +3502,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.6.tgz version: 7.2.6 - apiVersion: v2 - created: "2023-02-14T17:16:50.694966013Z" + created: "2023-02-20T17:09:46.857237655Z" description: OpenFaaS - Serverless Functions Made Simple digest: 13a250251d1d2c1b9ba7b419236f5c3a1b09c20bfd85b6d6172715c3663a1b60 home: https://www.openfaas.com @@ -3502,7 +3528,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.5.tgz version: 7.2.5 - apiVersion: v2 - created: "2023-02-14T17:16:50.693803533Z" + created: "2023-02-20T17:09:46.856110026Z" description: OpenFaaS - Serverless Functions Made Simple digest: 6f3caa7ef5ce337c8d0ddb44a0f9d463240972a6dc4800949770746d764b7fa9 home: https://www.openfaas.com @@ -3528,7 +3554,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.4.tgz version: 7.2.4 - apiVersion: v2 - created: "2023-02-14T17:16:50.692642454Z" + created: "2023-02-20T17:09:46.85448039Z" description: OpenFaaS - Serverless Functions Made Simple digest: 0ea59d1ac83ea2e4390d2e90a6ee5ad0c30061e70859f32549a566ffdd1992cc home: https://www.openfaas.com @@ -3554,7 +3580,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.3.tgz version: 7.2.3 - apiVersion: v2 - created: "2023-02-14T17:16:50.691495065Z" + created: "2023-02-20T17:09:46.853577309Z" description: OpenFaaS - Serverless Functions Made Simple digest: 2b29cf6deaaadad545647508af9bf22df397dcf3fecb70d43f54a54ecb6536bd home: https://www.openfaas.com @@ -3580,7 +3606,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.2.tgz version: 7.2.2 - apiVersion: v2 - created: "2023-02-14T17:16:50.690289965Z" + created: "2023-02-20T17:09:46.852677138Z" description: OpenFaaS - Serverless Functions Made Simple digest: 68bba3705d2e9c0c0a6afea87d09e4edfc7a76f688fbe4abe08ab191bb4bd01e home: https://www.openfaas.com @@ -3606,7 +3632,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.1.tgz version: 7.2.1 - apiVersion: v2 - created: "2023-02-14T17:16:50.68866488Z" + created: "2023-02-20T17:09:46.851739826Z" description: OpenFaaS - Serverless Functions Made Simple digest: 1c1cc94e1883dabd6dc3817d6c2f91cc22674196c1f118ae5aa1edb4d7a6bc31 home: https://www.openfaas.com @@ -3632,7 +3658,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.0.tgz version: 7.2.0 - apiVersion: v2 - created: "2023-02-14T17:16:50.687404478Z" + created: "2023-02-20T17:09:46.850786873Z" description: OpenFaaS - Serverless Functions Made Simple digest: 140f1475d1aac65f7236e452085c8ceb2c13a0ffe6d7bc411bdafa55ebf9f420 home: https://www.openfaas.com @@ -3658,7 +3684,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.1.2.tgz version: 7.1.2 - apiVersion: v2 - created: "2023-02-14T17:16:50.686421765Z" + created: "2023-02-20T17:09:46.849412506Z" description: OpenFaaS - Serverless Functions Made Simple digest: 491a6a707145be70ccd2cf8f1a6250cc32fb9d11bca2b2952f1b9c86e641dc1d home: https://www.openfaas.com @@ -3684,7 +3710,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.1.1.tgz version: 7.1.1 - apiVersion: v2 - created: "2023-02-14T17:16:50.685419611Z" + created: "2023-02-20T17:09:46.848110131Z" description: OpenFaaS - Serverless Functions Made Simple digest: 2b55582ab7f8414c697832d49d427a63710053d2c15301adf226620b69377c49 home: https://www.openfaas.com @@ -3710,7 +3736,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.1.0.tgz version: 7.1.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.684409977Z" + created: "2023-02-20T17:09:46.847168058Z" description: OpenFaaS - Serverless Functions Made Simple digest: 833259e2de8fdfd9f4da0dbb78bda50572105db2af0362c36e7f644de6352d4c home: https://www.openfaas.com @@ -3735,7 +3761,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.0.4.tgz version: 7.0.4 - apiVersion: v1 - created: "2023-02-14T17:16:50.683406123Z" + created: "2023-02-20T17:09:46.846136883Z" description: OpenFaaS - Serverless Functions Made Simple digest: f8127c4f2b33bf7ea691ca929a3310633b0fd1a6721d99df7eb9b40fdab746b2 home: https://www.openfaas.com @@ -3760,7 +3786,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.0.3.tgz version: 7.0.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.682223953Z" + created: "2023-02-20T17:09:46.844780616Z" description: OpenFaaS - Serverless Functions Made Simple digest: 9104fd565cb86b366796a2ff49b2e354b2e320f60c9f8343043e6cb89a4367a5 home: https://www.openfaas.com @@ -3785,7 +3811,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.0.2.tgz version: 7.0.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.680398791Z" + created: "2023-02-20T17:09:46.843367518Z" description: OpenFaaS - Serverless Functions Made Simple digest: f7b37f2571bfb0dc596e37a000ce4f29aa8346254d79fda25ad4034d6a4848da home: https://www.openfaas.com @@ -3810,7 +3836,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.0.1.tgz version: 7.0.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.679445859Z" + created: "2023-02-20T17:09:46.84197784Z" description: OpenFaaS - Serverless Functions Made Simple digest: 8c9482cc9ec00709ff3250ff640fee58c40284355e2299b04f5e8126bc048138 home: https://www.openfaas.com @@ -3835,7 +3861,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.0.0.tgz version: 7.0.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.6782848Z" + created: "2023-02-20T17:09:46.839976141Z" description: OpenFaaS - Serverless Functions Made Simple digest: 0e202802844d3575a74e317718d0b464144dc0f1266cbbd360c540b93f2ca306 home: https://www.openfaas.com @@ -3860,7 +3886,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.2.3.tgz version: 6.2.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.677044618Z" + created: "2023-02-20T17:09:46.838835742Z" description: OpenFaaS - Serverless Functions Made Simple digest: cc5e7a0e79a7929d8539a7eff0868bbc33fb2b178dd6ccb4479067f3ed57029f home: https://www.openfaas.com @@ -3885,7 +3911,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.2.2.tgz version: 6.2.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.675848148Z" + created: "2023-02-20T17:09:46.837639331Z" description: OpenFaaS - Serverless Functions Made Simple digest: fbf8035b5c7346d082e91f685fbaa7f15245bbe86ed782f3e456205056f18fc7 home: https://www.openfaas.com @@ -3910,7 +3936,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.2.1.tgz version: 6.2.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.674623036Z" + created: "2023-02-20T17:09:46.83646609Z" description: OpenFaaS - Serverless Functions Made Simple digest: 8148bd55704fdb0ee98fb4da89f65507e1fefe25771f113218abee689e17fa63 home: https://www.openfaas.com @@ -3935,7 +3961,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.2.0.tgz version: 6.2.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.672406431Z" + created: "2023-02-20T17:09:46.835322071Z" description: OpenFaaS - Serverless Functions Made Simple digest: f6c16c0741baae72090f7928b511078b315edf0298a5f51dc4b05bd337705f64 home: https://www.openfaas.com @@ -3960,7 +3986,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.6.tgz version: 6.1.6 - apiVersion: v1 - created: "2023-02-14T17:16:50.670928341Z" + created: "2023-02-20T17:09:46.833909642Z" description: OpenFaaS - Serverless Functions Made Simple digest: a2cb358daa37da91157ae4e6f1b7c6eef009bcb3255bc3ab63d3a20f4d060e71 home: https://www.openfaas.com @@ -3985,7 +4011,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.5.tgz version: 6.1.5 - apiVersion: v1 - created: "2023-02-14T17:16:50.669446291Z" + created: "2023-02-20T17:09:46.831933254Z" description: OpenFaaS - Serverless Functions Made Simple digest: 777c9a843776e9276b49c867d7beabfe103c619ec0f16f753ea04250d5c9bdd4 home: https://www.openfaas.com @@ -4010,7 +4036,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.4.tgz version: 6.1.4 - apiVersion: v1 - created: "2023-02-14T17:16:50.667951631Z" + created: "2023-02-20T17:09:46.831058524Z" description: OpenFaaS - Serverless Functions Made Simple digest: 546ba68e18d5c843b7f04a48d47b30d16ad4f4f70c861b570d71d719a9056a79 home: https://www.openfaas.com @@ -4035,7 +4061,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.3.tgz version: 6.1.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.666421769Z" + created: "2023-02-20T17:09:46.830118652Z" description: OpenFaaS - Serverless Functions Made Simple digest: 4b3ff5a6eb1582320e028b164ae87ba0a34a852095ff9a29070a273cc7b1205c home: https://www.openfaas.com @@ -4060,7 +4086,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.2.tgz version: 6.1.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.664860876Z" + created: "2023-02-20T17:09:46.829161589Z" description: OpenFaaS - Serverless Functions Made Simple digest: 7274a6ce40958c7b73dc8cb218d019644b7c3ab7308b89efb79093eb208a695e home: https://www.openfaas.com @@ -4085,7 +4111,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.1.tgz version: 6.1.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.6628906Z" + created: "2023-02-20T17:09:46.828285399Z" description: OpenFaaS - Serverless Functions Made Simple digest: 7e5ebeeb31d0a24d3c2b7118167a0d1b5bbf759f610900515787d68c3d4a71a6 home: https://www.openfaas.com @@ -4110,7 +4136,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.0.tgz version: 6.1.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.661882376Z" + created: "2023-02-20T17:09:46.827359427Z" description: OpenFaaS - Serverless Functions Made Simple digest: 92dc80552b0e09e6ddde3d2490f813ab9aad0e2804d5c95ab3f3d61513bb056b home: https://www.openfaas.com @@ -4135,7 +4161,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.0.4.tgz version: 6.0.4 - apiVersion: v1 - created: "2023-02-14T17:16:50.660658864Z" + created: "2023-02-20T17:09:46.825744472Z" description: OpenFaaS - Serverless Functions Made Simple digest: 53e87262f1e63b532045ad55081fdbedcc0fcaf74e3c4123fdc6ab00db3d765a home: https://www.openfaas.com @@ -4160,7 +4186,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.0.3.tgz version: 6.0.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.657308161Z" + created: "2023-02-20T17:09:46.82481981Z" description: OpenFaaS - Serverless Functions Made Simple digest: 2721cbfca07b105f5b89fbf7862e88962dbedad968c80dbd895fe7d5a07b4c4a home: https://www.openfaas.com @@ -4185,7 +4211,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.0.2.tgz version: 6.0.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.653845195Z" + created: "2023-02-20T17:09:46.823921499Z" description: OpenFaaS - Serverless Functions Made Simple digest: ee7d69ad9cae2b8067833749ed071f0e88efba65012963a79b23e808c649591f home: https://www.openfaas.com @@ -4208,7 +4234,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.0.1.tgz version: 6.0.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.651714263Z" + created: "2023-02-20T17:09:46.823035968Z" description: OpenFaaS - Serverless Functions Made Simple digest: 90ee77d9ea47450c93dd30a9f29e9b95e2da40faa77fd252ea9240aac2e35790 home: https://www.openfaas.com @@ -4231,7 +4257,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.0.0.tgz version: 6.0.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.649968404Z" + created: "2023-02-20T17:09:46.82161334Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2eae955e48053814cf3110a68997df327011e651be6bbcbe3be1f2b6634b6e91 home: https://www.openfaas.com @@ -4254,7 +4280,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.8.tgz version: 5.8.8 - apiVersion: v1 - created: "2023-02-14T17:16:50.64746691Z" + created: "2023-02-20T17:09:46.820289364Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b24b6a74f18aa2475fbf2cdc5528088900dd9019df5d9d26de6198b11d45f268 home: https://www.openfaas.com @@ -4277,7 +4303,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.7.tgz version: 5.8.7 - apiVersion: v1 - created: "2023-02-14T17:16:50.646441425Z" + created: "2023-02-20T17:09:46.819154625Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: dc28a1e3ea8299301fa71832256aabcba2fcf7a60603ee44527445ceb802a093 home: https://www.openfaas.com @@ -4300,7 +4326,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.6.tgz version: 5.8.6 - apiVersion: v1 - created: "2023-02-14T17:16:50.64511038Z" + created: "2023-02-20T17:09:46.816837975Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 19f636821dd3e041c1a33d5d762652b110c4f61cd0410fb34dfe5395177487c4 home: https://www.openfaas.com @@ -4323,7 +4349,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.5.tgz version: 5.8.5 - apiVersion: v1 - created: "2023-02-14T17:16:50.643794486Z" + created: "2023-02-20T17:09:46.815284352Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 8919ec3b5e6d39f0c26c0be9d0c5ab12d867871fe63caa2314fadeb68f696a4d home: https://www.openfaas.com @@ -4346,7 +4372,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.4.tgz version: 5.8.4 - apiVersion: v1 - created: "2023-02-14T17:16:50.642320036Z" + created: "2023-02-20T17:09:46.813972717Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 30484e15a7eebcd990f395e753aa1ac426a116af1c05912b8cb0a1a693205043 home: https://www.openfaas.com @@ -4369,7 +4395,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.3.tgz version: 5.8.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.640491304Z" + created: "2023-02-20T17:09:46.812699143Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 395381f7a0305c3a5e2c9506d6b1eaec42c3e5725bc6d708323407a6979ffbe3 home: https://www.openfaas.com @@ -4392,7 +4418,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.2.tgz version: 5.8.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.638071632Z" + created: "2023-02-20T17:09:46.811429359Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2c9118ed71b194ee3b6069e57a3e304e358b6ce46bc8df3b313ccf19ecef5bf9 home: https://www.openfaas.com @@ -4415,7 +4441,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.1.tgz version: 5.8.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.637037507Z" + created: "2023-02-20T17:09:46.810113224Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c0a639d6143fafc36733f94cf81a08f9a13a80a6a87f3fab97726b31dbaf64e2 home: https://www.openfaas.com @@ -4438,7 +4464,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.0.tgz version: 5.8.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.636024503Z" + created: "2023-02-20T17:09:46.808780868Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 0e4bf7b6f62ca43d0fdc4ddd5153fb3615fc544be1ea587ffeadb8dcf2904303 home: https://www.openfaas.com @@ -4461,7 +4487,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.7.2.tgz version: 5.7.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.63505326Z" + created: "2023-02-20T17:09:46.807149442Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b50d7ac5e2e27c1f6ec37726653d0b33cd89306cbe8ea3c1584193698fde555d home: https://www.openfaas.com @@ -4484,7 +4510,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.7.1.tgz version: 5.7.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.634041386Z" + created: "2023-02-20T17:09:46.806332274Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2ee9d13840de3f3d4a7e2606e379d86acd33235e08e89fc565352dbb901c136f home: https://www.openfaas.com @@ -4507,7 +4533,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.7.0.tgz version: 5.7.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.633078424Z" + created: "2023-02-20T17:09:46.805489105Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bf7026cc6929d19ce333b3b8ec2003fbd87dc5e125596dfe1f32faf261ae23f9 home: https://www.openfaas.com @@ -4530,7 +4556,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.7.tgz version: 5.6.7 - apiVersion: v1 - created: "2023-02-14T17:16:50.63209024Z" + created: "2023-02-20T17:09:46.804712478Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: e4a6410e51f31d43e0c854c2c088c01fe13479e6e8f808042ba810290c48baa7 home: https://www.openfaas.com @@ -4553,7 +4579,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.6.tgz version: 5.6.6 - apiVersion: v1 - created: "2023-02-14T17:16:50.631124448Z" + created: "2023-02-20T17:09:46.803927881Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: a9702f013efed35cc01afe21455b397d6da797773c6164bd9091c07fc2c5a6cc home: https://www.openfaas.com @@ -4576,7 +4602,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.5.tgz version: 5.6.5 - apiVersion: v1 - created: "2023-02-14T17:16:50.630117224Z" + created: "2023-02-20T17:09:46.803130474Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2cda47db8d988ef759b4d515e73678425c42aa8157bd1d298ad8330a67239cb2 home: https://www.openfaas.com @@ -4599,7 +4625,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.4.tgz version: 5.6.4 - apiVersion: v1 - created: "2023-02-14T17:16:50.628281292Z" + created: "2023-02-20T17:09:46.801804548Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 5d932e61965f7683d463f48337312336e30602c969dbec4c4327b1e1f30fab09 home: https://www.openfaas.com @@ -4622,7 +4648,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.3.tgz version: 5.6.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.626987628Z" + created: "2023-02-20T17:09:46.800126681Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 6c88bd9c7b4aa6827753d6100aa633e720b4f48778bb55217f4c616f06458c11 home: https://www.openfaas.com @@ -4645,7 +4671,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.2.tgz version: 5.6.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.625660104Z" + created: "2023-02-20T17:09:46.797964416Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 3a0fe47eb80d4331000f067fc5591386808dea7de4316603a528fd0f28bcd0f8 home: https://www.openfaas.com @@ -4668,7 +4694,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.1.tgz version: 5.6.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.624343329Z" + created: "2023-02-20T17:09:46.796665002Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2def5b116b93e5ddc6022f1c79c0d51d0f085f866a308fa12753594a03820a84 home: https://www.openfaas.com @@ -4691,7 +4717,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.0.tgz version: 5.6.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.623015354Z" + created: "2023-02-20T17:09:46.795359717Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 609a386a806e285f2ae07fff3a4161ba9df26023a3bdd90f38b61a99498e39f4 home: https://www.openfaas.com @@ -4714,7 +4740,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.5.6.tgz version: 5.5.6 - apiVersion: v1 - created: "2023-02-14T17:16:50.62171014Z" + created: "2023-02-20T17:09:46.794056862Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 66f1657c8c20aed59db77fd2f9d06201b9a73fcead1c507c4fd090a74b1f67af home: https://www.openfaas.com @@ -4737,7 +4763,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.5.4.tgz version: 5.5.4 - apiVersion: v1 - created: "2023-02-14T17:16:50.620099666Z" + created: "2023-02-20T17:09:46.792790718Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 7fe32a65e4fd0ba5ae5812c133f9b5da97f6b15aa712bfe95397b752349909df home: https://www.openfaas.com @@ -4760,7 +4786,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.5.3.tgz version: 5.5.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.618923956Z" + created: "2023-02-20T17:09:46.791539575Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 72c323c15737305457e7462104f6c439e21372586bb529e56b86356b578ca21d home: https://www.openfaas.com @@ -4783,7 +4809,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.5.2.tgz version: 5.5.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.618082078Z" + created: "2023-02-20T17:09:46.790262811Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 57d597c6bbacf2ca52cba4e702af5dea2ab98c2f18430624b4d86bf1425dd772 home: https://www.openfaas.com @@ -4806,7 +4832,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.5.1.tgz version: 5.5.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.6172594Z" + created: "2023-02-20T17:09:46.788907215Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bdbb2fe4f1d446f2941a0a13decb3864f891b5224132c6eb422d57e42cea8d6b home: https://www.openfaas.com @@ -4829,7 +4855,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.5.0.tgz version: 5.5.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.616525525Z" + created: "2023-02-20T17:09:46.787185996Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: cd53e19257a7c3d41e171d5f75348b15e576f7085d5cd5f01d0cd98340faa14c home: https://www.openfaas.com @@ -4852,7 +4878,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.4.1.tgz version: 5.4.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.615863923Z" + created: "2023-02-20T17:09:46.786263834Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ba61dbc9b56ffd92425fda67caf4cf9e396e2fcf15c6df2f4317c46da31d6e38 home: https://www.openfaas.com @@ -4875,7 +4901,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.4.0.tgz version: 5.4.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.608337249Z" + created: "2023-02-20T17:09:46.777685719Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c6d41580cfabb91bc2f3cb544d18eff8f543a2e0f34725277df6fad5555bd931 home: https://www.openfaas.com @@ -4898,7 +4924,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.11.tgz version: 5.3.11 - apiVersion: v1 - created: "2023-02-14T17:16:50.607655755Z" + created: "2023-02-20T17:09:46.776979875Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 29ecc62c634105464689d5cb91159dfb04b1d0fc65ed51f7ba65dbbd8cba58f7 home: https://www.openfaas.com @@ -4921,7 +4947,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.10.tgz version: 5.3.10 - apiVersion: v1 - created: "2023-02-14T17:16:50.615063196Z" + created: "2023-02-20T17:09:46.785163656Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: f34b491b431db50a553a190ae81da9e59909d188ceca43b89b931ca7b15b0d6a home: https://www.openfaas.com @@ -4944,7 +4970,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.9.tgz version: 5.3.9 - apiVersion: v1 - created: "2023-02-14T17:16:50.613986819Z" + created: "2023-02-20T17:09:46.784082699Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 31948e7bc549fae977ff4d5c1df582718f69376c73b3dbd8b0d145a299609aa4 home: https://www.openfaas.com @@ -4967,7 +4993,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.8.tgz version: 5.3.8 - apiVersion: v1 - created: "2023-02-14T17:16:50.613029147Z" + created: "2023-02-20T17:09:46.783174998Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: dc790dd7ef8feb928a9c6709d1d47759494fba54e05e1e9b66e83cfb7f9816d8 home: https://www.openfaas.com @@ -4990,7 +5016,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.7.tgz version: 5.3.7 - apiVersion: v1 - created: "2023-02-14T17:16:50.612151687Z" + created: "2023-02-20T17:09:46.78238561Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 259794d738c13144bf9d4db1786b72571eda241bf07b619d5c6f77c1e54d7d98 home: https://www.openfaas.com @@ -5013,7 +5039,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.6.tgz version: 5.3.6 - apiVersion: v1 - created: "2023-02-14T17:16:50.610949177Z" + created: "2023-02-20T17:09:46.781562532Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 16d056eb463f740b65a2a8d67f2a1aa9f7cd7a8057e670890a1a0610cc0ec593 home: https://www.openfaas.com @@ -5036,7 +5062,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.5.tgz version: 5.3.5 - apiVersion: v1 - created: "2023-02-14T17:16:50.610290575Z" + created: "2023-02-20T17:09:46.78063625Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: baf371944c011ff441ac95c062122427b4d22be915d13b01429e7a010dee7d76 home: https://www.openfaas.com @@ -5059,7 +5085,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.4.tgz version: 5.3.4 - apiVersion: v1 - created: "2023-02-14T17:16:50.609623842Z" + created: "2023-02-20T17:09:46.779035465Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: fb2536df55a163efb68d10bc68c5deaca1615bc814f5a6c3da364e77fcf13a41 home: https://www.openfaas.com @@ -5082,7 +5108,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.3.tgz version: 5.3.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.608988741Z" + created: "2023-02-20T17:09:46.778358072Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 5859c2ca0ec6aba463fa216fd8a593710969c44fb23052ba8fc424ab5b23938d home: https://www.openfaas.com @@ -5105,7 +5131,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.2.tgz version: 5.3.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.606972272Z" + created: "2023-02-20T17:09:46.776297121Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 61e780c469fc9404ce183b543b8d622328903a393750d7cabfe8d941fb87d316 home: https://www.openfaas.com @@ -5128,7 +5154,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.1.tgz version: 5.3.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.605685369Z" + created: "2023-02-20T17:09:46.775650129Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 1ebf5b8e4e6c2038d2ff7b4510605a4ce1880e7e721531d1524f805519de5a67 home: https://www.openfaas.com @@ -5153,7 +5179,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.2.2.tgz version: 5.2.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.605024467Z" + created: "2023-02-20T17:09:46.774998426Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ccc8469e3e0d86665345a2708b0b3fce1c22aaafb624909e6282ad5628d73f59 home: https://www.openfaas.com @@ -5178,7 +5204,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.2.1.tgz version: 5.2.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.604397805Z" + created: "2023-02-20T17:09:46.774348434Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 61fb1f1117ce10c2dda87402206b2b046885627d43c1fc90d0709d945b2b8919 home: https://www.openfaas.com @@ -5203,7 +5229,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.2.0.tgz version: 5.2.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.603765334Z" + created: "2023-02-20T17:09:46.773610289Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: e70ecd66b98d9b9ef915c0a0c6bbf76fdb77687fec9886a3f1f75234163c9698 home: https://www.openfaas.com @@ -5228,7 +5254,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.1.5.tgz version: 5.1.5 - apiVersion: v1 - created: "2023-02-14T17:16:50.603007998Z" + created: "2023-02-20T17:09:46.772209401Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: f3629d7aabbefce5d0045160e859c7a95bcc0cc28333fb226097e559790654a0 home: https://www.openfaas.com @@ -5253,7 +5279,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.1.4.tgz version: 5.1.4 - apiVersion: v1 - created: "2023-02-14T17:16:50.601970933Z" + created: "2023-02-20T17:09:46.771576749Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 609f4ecf6cb80601dcc55ddc389fc25315526da5bda521834fd49564304f9698 home: https://www.openfaas.com @@ -5278,7 +5304,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.1.3.tgz version: 5.1.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.60099329Z" + created: "2023-02-20T17:09:46.770958978Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 42ed71363397c2c45a1476da33c8cea195b473574d830c70431223dc35279f1f home: https://www.openfaas.com @@ -5303,7 +5329,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.1.2.tgz version: 5.1.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.600010047Z" + created: "2023-02-20T17:09:46.770004505Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 49516bf0c5940ec8e9317a4af4d0b0fc8223d74f605936ffaea8fed9e85da48a home: https://www.openfaas.com @@ -5328,7 +5354,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.1.1.tgz version: 5.1.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.599081176Z" + created: "2023-02-20T17:09:46.768966319Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 0650d10307bfe350e5e07603f0bf3e8dff8f39b4bdb08344dddb9e25bc4d1bdd home: https://www.openfaas.com @@ -5353,7 +5379,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.1.0.tgz version: 5.1.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.598250338Z" + created: "2023-02-20T17:09:46.767884482Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 5369f5b2927b4d7481b66667d07b260792e65eb8b36623911ee889c9612a9cb1 home: https://www.openfaas.com @@ -5378,7 +5404,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.0.1.tgz version: 5.0.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.596875542Z" + created: "2023-02-20T17:09:46.766790444Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: fbd1761f0c9337bfdb25d55f275490a8e7213c0c9076f640a15cb6c284719b3b home: https://www.openfaas.com @@ -5403,7 +5429,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.0.0.tgz version: 5.0.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.596204329Z" + created: "2023-02-20T17:09:46.765888693Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b2d6576eeba77f691402c2614947e97234f04c8b6425fb1342c7fba9f2ea2661 home: https://www.openfaas.com @@ -5428,7 +5454,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.8.2.tgz version: 4.8.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.595539707Z" + created: "2023-02-20T17:09:46.764521936Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 8fca83fc2f0627c72dcfc825f83e54838402f4e87cb37da06e133d0ca040a5fd home: https://www.openfaas.com @@ -5453,7 +5479,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.8.1.tgz version: 4.8.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.594368367Z" + created: "2023-02-20T17:09:46.763898625Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: f873a01735eaf2db837772eb170217df47da04b0369f8c79b577833423984a98 home: https://www.openfaas.com @@ -5478,7 +5504,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.8.0.tgz version: 4.8.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.593044783Z" + created: "2023-02-20T17:09:46.763252702Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 9edf338218af0110a938525c9e1e5bd93e448768bd643e2a836d26405e36144e home: https://www.openfaas.com @@ -5503,7 +5529,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.7.4.tgz version: 4.7.4 - apiVersion: v1 - created: "2023-02-14T17:16:50.591735218Z" + created: "2023-02-20T17:09:46.762643942Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ca70d59f7e0cc2ffc0983cfd7dd21fbb462ae63c57f9588a5bd61ac5bfe8eb3f home: https://www.openfaas.com @@ -5528,7 +5554,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.7.3.tgz version: 4.7.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.590521647Z" + created: "2023-02-20T17:09:46.76201662Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 4130462a951d5b0979ed5d15d2dd60d8d6c08e5f68e6f600b47606ad29c54ebd home: https://www.openfaas.com @@ -5553,7 +5579,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.7.2.tgz version: 4.7.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.589262755Z" + created: "2023-02-20T17:09:46.761372438Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 29caf942ddc24aef3840425ff916549a15ea1806071b475395092bbdf4cceefc home: https://www.openfaas.com @@ -5578,7 +5604,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.7.1.tgz version: 4.7.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.587988752Z" + created: "2023-02-20T17:09:46.760757626Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: a4fb0e6707fd64fc3f3d964c612edf67b52d03eeceec7e01246c82f832a64cf9 home: https://www.openfaas.com @@ -5603,7 +5629,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.7.0.tgz version: 4.7.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.586403518Z" + created: "2023-02-20T17:09:46.760165206Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: e43f996bdd7da5e79220dd7e03de477706b24e717235e3462d0fc0bc062c6592 home: https://www.openfaas.com @@ -5628,7 +5654,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.6.4.tgz version: 4.6.4 - apiVersion: v1 - created: "2023-02-14T17:16:50.585400774Z" + created: "2023-02-20T17:09:46.759538474Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: fc1fcfac0669f4922458d25fea8a57d416615d001f5d31f481d71d94ad3c1ac9 home: https://www.openfaas.com @@ -5653,7 +5679,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.6.3.tgz version: 4.6.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.58466783Z" + created: "2023-02-20T17:09:46.758891602Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: beafa0f247e1934e6dab208979831d762df18b2b8eb3c2afc9e44090d3d63328 home: https://www.openfaas.com @@ -5678,7 +5704,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.6.2.tgz version: 4.6.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.584010217Z" + created: "2023-02-20T17:09:46.758101735Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bdccac3babaf5c0f063c22093916276d4e2a27bdc28df27f14d79ebe89d6ecda home: https://www.openfaas.com @@ -5703,7 +5729,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.6.1.tgz version: 4.6.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.583342895Z" + created: "2023-02-20T17:09:46.756649745Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 1ec994bfe542a70904a3700922435aae5e734f1c349a8ec6f311b848c0eba3d4 home: https://www.openfaas.com @@ -5728,7 +5754,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.6.0.tgz version: 4.6.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.582557288Z" + created: "2023-02-20T17:09:46.756036213Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: d2e815e64da306d92944ae288477a2c0add9b040a3357b132f1f2c1ec90f8445 home: https://www.openfaas.com @@ -5753,7 +5779,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.5.0.tgz version: 4.5.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.581744211Z" + created: "2023-02-20T17:09:46.755322719Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c958a207e5bd22026e6e60a1382892d221d458e719fe19ebb10e32debdc2c7db home: https://www.openfaas.com @@ -5778,7 +5804,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.4.1.tgz version: 4.4.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.580972245Z" + created: "2023-02-20T17:09:46.754632495Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 16ae856a8cbb85997f4117249222b9617fd3a3160e178a520d2a9432752b8074 home: https://www.openfaas.com @@ -5803,7 +5829,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.4.0.tgz version: 4.4.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.580193039Z" + created: "2023-02-20T17:09:46.7538929Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bf4f279e9863d52a47fa349444853d5852570b15fae20d0b288dc4e6f1bfc711 home: https://www.openfaas.com @@ -5828,7 +5854,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.3.5.tgz version: 4.3.5 - apiVersion: v1 - created: "2023-02-14T17:16:50.579290518Z" + created: "2023-02-20T17:09:46.753187526Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: fb1c23263188eb6b578b63357ec346b28964138b37b1b74f1c264d8c89b1f9a8 home: https://www.openfaas.com @@ -5853,7 +5879,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.3.4.tgz version: 4.3.4 - apiVersion: v1 - created: "2023-02-14T17:16:50.578515222Z" + created: "2023-02-20T17:09:46.752630836Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 4a84e17d3faade9382517258582e40ec74ac44259b78f0eb0c466fa0f2e0e122 home: https://www.openfaas.com @@ -5878,7 +5904,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.3.3.tgz version: 4.3.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.576824975Z" + created: "2023-02-20T17:09:46.752005495Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 305d7f3752360d4bd2e8faf54930e0f56be16b32dc8278afc5bf45ca0d07a94f home: https://www.openfaas.com @@ -5903,7 +5929,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.3.2.tgz version: 4.3.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.575873183Z" + created: "2023-02-20T17:09:46.751476497Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ca9cc6c463c8dbf851f9a3af07cc7ad82c6bb0cb154c0cfe1af35574c5f57f2d home: https://www.openfaas.com @@ -5928,7 +5954,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.3.1.tgz version: 4.3.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.575020654Z" + created: "2023-02-20T17:09:46.750931818Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 89f1706dd6d37580958bccfc7deaa3c18b7567501d02e390585fb8633c5c3bfa home: https://www.openfaas.com @@ -5953,7 +5979,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.3.0.tgz version: 4.3.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.574282579Z" + created: "2023-02-20T17:09:46.749700186Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b9c635c702bfe5b87de7fc5026e73cfb8dba34368fae8ad637b3ac9120ea9e36 home: https://www.openfaas.com @@ -5978,7 +6004,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.2.0.tgz version: 4.2.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.573546974Z" + created: "2023-02-20T17:09:46.748723292Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 334d5c9fccb83830c0db2c1c930c5725d10b4e5c4051d88e3ac32509bc25c462 home: https://www.openfaas.com @@ -6003,7 +6029,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.1.1.tgz version: 4.1.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.572802609Z" + created: "2023-02-20T17:09:46.747871323Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 1d90e4836620979c4b0ad0ed35b73e6b9df4fffff028aa4349103bc498b4fa81 home: https://www.openfaas.com @@ -6028,7 +6054,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.1.0.tgz version: 4.1.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.572052314Z" + created: "2023-02-20T17:09:46.747088276Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bb69e13f76f0f9f6bc62612e52e16c9ca073590928ecc73bf05506970fbc44c2 home: https://www.openfaas.com @@ -6053,7 +6079,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.0.0.tgz version: 4.0.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.571302908Z" + created: "2023-02-20T17:09:46.746304959Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 7a8ad9756c3b243c33f37aa43bea1ac32360804350b9e21fa32f3c96fcf4808e home: https://www.openfaas.com @@ -6078,7 +6104,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-3.3.1.tgz version: 3.3.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.570555823Z" + created: "2023-02-20T17:09:46.745533292Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 3e9cf71bffb7c44aaa0c876f3b5adcf46e7b338c759e337e9464a9e2ab9c102e home: https://www.openfaas.com @@ -6103,7 +6129,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-3.3.0.tgz version: 3.3.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.569936292Z" + created: "2023-02-20T17:09:46.744986633Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 5b5a05c50da7dbd313f734b2194148b0c65563e6ed44c41881e4fb64ea973780 home: https://www.openfaas.com @@ -6128,7 +6154,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-3.2.3.tgz version: 3.2.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.569358493Z" + created: "2023-02-20T17:09:46.744362832Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bf9f7e610cb842d394589d3f43ac223d9e3b6a9d34d6eb5e708159c7b1a4cb12 home: https://www.openfaas.com @@ -6153,7 +6179,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-3.2.2.tgz version: 3.2.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.568734762Z" + created: "2023-02-20T17:09:46.743626587Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ac4bb202a70d5abc58c667a3662b749b8998aaa66eb31dfcaac202f148fc9fe1 home: https://www.openfaas.com @@ -6178,7 +6204,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-3.2.0.tgz version: 3.2.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.567754299Z" + created: "2023-02-20T17:09:46.742896472Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 9af11f0f8b5567676233ea779435d85b389bf19f7b6be2753b8cdee6fcbb5e09 home: https://www.openfaas.com @@ -6203,7 +6229,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-3.0.0.tgz version: 3.0.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.567167499Z" + created: "2023-02-20T17:09:46.742143166Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ebb50d8e3acc4ac6a5637c81b5c4bf791ba3b69556fb177e5f711f069f354be0 home: https://www.openfaas.com @@ -6228,7 +6254,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-2.1.4.tgz version: 2.1.4 - apiVersion: v1 - created: "2023-02-14T17:16:50.566444535Z" + created: "2023-02-20T17:09:46.741311787Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bb1a10058c6cb2d42246ef88ac0118c3b8b67e7f622d891b2605c898da2759ef home: https://www.openfaas.com @@ -6253,7 +6279,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-2.1.3.tgz version: 2.1.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.56569726Z" + created: "2023-02-20T17:09:46.740567031Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 9b85946a5153725578a40b06199127d9595b3ed9c36cabaca7990b4a23578187 home: https://www.openfaas.com @@ -6278,7 +6304,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-2.1.2.tgz version: 2.1.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.564990656Z" + created: "2023-02-20T17:09:46.739967271Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 3ea4d0c129cb4296deb61c44c325f15ddb0bce9e95d42de5903acccfab9728f5 home: https://www.openfaas.com @@ -6303,7 +6329,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-2.1.1.tgz version: 2.1.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.564250011Z" + created: "2023-02-20T17:09:46.73937271Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: d414ec291117ec3d2d3c88eee79bcfcb4777ffe1a17ece2150ebe0c959630a17 home: https://www.openfaas.com @@ -6328,7 +6354,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-2.1.0.tgz version: 2.1.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.563536507Z" + created: "2023-02-20T17:09:46.73818818Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ea9449ae717c8e621e5d8c536050691fcb3c593991128ebe656d3e1ba50327f0 home: https://www.openfaas.com @@ -6353,7 +6379,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-2.0.0.tgz version: 2.0.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.444910172Z" + created: "2023-02-20T17:09:46.603709394Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 681ee9cb041db8204863bc16156f6ad9ee410e188a318223ce8d347021583da9 home: https://www.openfaas.com @@ -6378,7 +6404,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.9.1.tgz version: 1.9.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.444012672Z" + created: "2023-02-20T17:09:46.603106883Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c086269fed6b434bb06bbd1f8ad5a5255c71519044d3043d023b3f5f3720dc37 home: https://www.openfaas.com @@ -6403,7 +6429,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.8.1.tgz version: 1.8.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.443104691Z" + created: "2023-02-20T17:09:46.60241964Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bc5ddaf593348ae9fce336a340c1c283ebaea380f253f7400af83d102aab1154 home: https://www.openfaas.com @@ -6428,7 +6454,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.8.0.tgz version: 1.8.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.442129558Z" + created: "2023-02-20T17:09:46.600902998Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: dcc1c3cee2f005abce4136eda6bd33755e43534f3f6b02c5d9834d6b4d18cd70 home: https://www.openfaas.com @@ -6451,7 +6477,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.7.1.tgz version: 1.7.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.441509877Z" + created: "2023-02-20T17:09:46.600184913Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c12d29315a6d69c954b64141fa3f91c7c524573e79b263cb3c5ea0aea6c8884e home: https://www.openfaas.com @@ -6474,7 +6500,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.7.0.tgz version: 1.7.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.440958339Z" + created: "2023-02-20T17:09:46.599505229Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2295d3256256fec9d4c22c51bc99bbb6476fcb69dd2e98f990b793323be35bbc home: https://www.openfaas.com @@ -6497,7 +6523,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.6.2.tgz version: 1.6.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.44040165Z" + created: "2023-02-20T17:09:46.598810606Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 96c42df1fcea981fb108f2366a3685dd27cc26661aa8bb18f4cf529b9f179d32 home: https://www.openfaas.com @@ -6520,7 +6546,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.6.1.tgz version: 1.6.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.439833101Z" + created: "2023-02-20T17:09:46.598108161Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 375d873875b0f0cb8c6b6eb5e9de3dbc7ba2d30fcd76bc85d63ecf67213107b8 home: https://www.openfaas.com @@ -6543,7 +6569,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.6.0.tgz version: 1.6.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.439277112Z" + created: "2023-02-20T17:09:46.597401287Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 916494e9852895abb6e8190bbec49d1785f2a0f2f4042df23796fa7d9c188bf2 home: https://www.openfaas.com @@ -6566,7 +6592,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.5.0.tgz version: 1.5.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.438689832Z" + created: "2023-02-20T17:09:46.596680432Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 050281112653d480395fedd0f8dd8c838e590937bfe19514b7ed0a83ac81a09e home: https://www.openfaas.com @@ -6589,7 +6615,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.4.4.tgz version: 1.4.4 - apiVersion: v1 - created: "2023-02-14T17:16:50.437389548Z" + created: "2023-02-20T17:09:46.595962398Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c53e92aff0b0a0221b046da0edb0b041173b04c9994e6b06f4c87b069a6c9857 home: https://www.openfaas.com @@ -6612,7 +6638,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.4.3.tgz version: 1.4.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.43683466Z" + created: "2023-02-20T17:09:46.595296155Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: d968c2a45bbd51d882634cb19a0d49fd09d6eaac80993dee1d1b84641b8564d7 home: https://www.openfaas.com @@ -6635,7 +6661,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.3.3.tgz version: 1.3.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.436181737Z" + created: "2023-02-20T17:09:46.594622042Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 237f21453d94363c77eb445cd428322be3cbdbe08e6ea3a5f555fa7fd9695fb1 home: https://www.openfaas.com @@ -6658,7 +6684,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.3.2.tgz version: 1.3.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.435425902Z" + created: "2023-02-20T17:09:46.593935318Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 69f2a54c60acb5f873d98dec801a1bb374a143e307198dd333b3eecb86a3fd0e home: https://www.openfaas.com @@ -6681,7 +6707,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.3.1.tgz version: 1.3.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.434758439Z" + created: "2023-02-20T17:09:46.593302706Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 54a9abc4c087fd5aa62d4c9b41e6939ced012cf42c439b31929f2ed0727263a8 home: https://www.openfaas.com @@ -6704,7 +6730,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.3.0.tgz version: 1.3.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.433993644Z" + created: "2023-02-20T17:09:46.592773578Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2954703f117c665363786ea5d2a83d27f1f6db6f4fa830534d0acb665f18ff03 home: https://www.openfaas.com @@ -6727,7 +6753,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.9.tgz version: 1.2.9 - apiVersion: v1 - created: "2023-02-14T17:16:50.433450475Z" + created: "2023-02-20T17:09:46.591594117Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b7f55e0fe1040f7fff93ad1532632855245dd2800b9407f774afbad6a26de134 home: https://www.openfaas.com @@ -6750,7 +6776,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.8.tgz version: 1.2.8 - apiVersion: v1 - created: "2023-02-14T17:16:50.432911387Z" + created: "2023-02-20T17:09:46.590683006Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: fcb1c441c1ca27f88302d872fd4e87e4d88d1aa4f51739d39f4fff17c3721fd9 home: https://www.openfaas.com @@ -6773,7 +6799,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.7.tgz version: 1.2.7 - apiVersion: v1 - created: "2023-02-14T17:16:50.432367589Z" + created: "2023-02-20T17:09:46.589875258Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 19b0a917d4825a6a40b7904e9072b9994c9ec2f9110f2871021695c5715f5cfb home: https://www.openfaas.com @@ -6796,7 +6822,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.6.tgz version: 1.2.6 - apiVersion: v1 - created: "2023-02-14T17:16:50.43181493Z" + created: "2023-02-20T17:09:46.589190855Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b91aff9318fa01e18f4cb23906647f910cb3170d06d378044ee1409268b30ee0 home: https://www.openfaas.com @@ -6819,7 +6845,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.5.tgz version: 1.2.5 - apiVersion: v1 - created: "2023-02-14T17:16:50.43122441Z" + created: "2023-02-20T17:09:46.588507941Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2318825fb60f308c172d608b769ea150c368177361c2449998c129f6cf426eba home: https://www.openfaas.com @@ -6842,7 +6868,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.4.tgz version: 1.2.4 - apiVersion: v1 - created: "2023-02-14T17:16:50.430672181Z" + created: "2023-02-20T17:09:46.587838588Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: fad03135ed925a86b5b004986bc0916b1dacce3292dfdf8c968aba45d518ce33 home: https://www.openfaas.com @@ -6865,7 +6891,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.3.tgz version: 1.2.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.43003411Z" + created: "2023-02-20T17:09:46.587150005Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 776f09ac11a7e6fcdb1b32a7ac48db0f84dccb622a1b906dff2b804ecab00fba home: https://www.openfaas.com @@ -6888,7 +6914,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.2.tgz version: 1.2.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.428817579Z" + created: "2023-02-20T17:09:46.586454571Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c6e08ca7839be38fa97c6be953cb38c5d6dc7e016a4f873aa45ff553799b3f6b home: https://www.openfaas.com @@ -6911,7 +6937,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.1.tgz version: 1.2.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.428383434Z" + created: "2023-02-20T17:09:46.585712515Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 8dcc919b9d17fafac602cf75e958e428846b4c9fc3b55d13029334cab05b8a38 home: https://www.openfaas.com @@ -6934,7 +6960,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.0.tgz version: 1.2.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.42796354Z" + created: "2023-02-20T17:09:46.584950449Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2f5ad4dd1afc2535ff11325eafc7cde1b15470352753287b16ca38075c5dfd67 home: https://www.openfaas.com @@ -6957,7 +6983,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.7.tgz version: 1.1.7 - apiVersion: v1 - created: "2023-02-14T17:16:50.427556946Z" + created: "2023-02-20T17:09:46.584243505Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 724871c9d312638c03796e092460d0979bf0e3629610e705573e02505b294e8d home: https://www.openfaas.com @@ -6980,7 +7006,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.6.tgz version: 1.1.6 - apiVersion: v1 - created: "2023-02-14T17:16:50.427107951Z" + created: "2023-02-20T17:09:46.583594752Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c9b20f965b79e4fe13165a5fae15eeae76d45295c098bf3da0a0bf281deecf0d home: https://www.openfaas.com @@ -7003,7 +7029,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.5.tgz version: 1.1.5 - apiVersion: v1 - created: "2023-02-14T17:16:50.426584803Z" + created: "2023-02-20T17:09:46.58293196Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 9f4bf7e660d0f3ec75617c6fb1c6629460f79532d393519e8d2581d70372cbbe home: https://www.openfaas.com @@ -7026,7 +7052,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.4.tgz version: 1.1.4 - apiVersion: v1 - created: "2023-02-14T17:16:50.426062066Z" + created: "2023-02-20T17:09:46.582235426Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 14979bee23155a1340876e2024e810c0e07702911fee1f99e8efde22adefae7c home: https://www.openfaas.com @@ -7049,7 +7075,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.3.tgz version: 1.1.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.425575759Z" + created: "2023-02-20T17:09:46.581240461Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: e94224cfca6954585eaacd99bb1e0edb6a2e3a6719eded9443886a11fce5221e home: https://www.openfaas.com @@ -7072,7 +7098,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.2.tgz version: 1.1.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.425092033Z" + created: "2023-02-20T17:09:46.580060941Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 3d60131c5f195f2fedd3ea8d55b3054a8ca705f909adc39f836d5c6ce7ee493f home: https://www.openfaas.com @@ -7095,7 +7121,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.1.tgz version: 1.1.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.424611197Z" + created: "2023-02-20T17:09:46.579440129Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 652ff06c8188502f83f0def4a4bb33a6b4b0c6d8e3a408782e875423ae42220c home: https://www.openfaas.com @@ -7118,7 +7144,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.0.tgz version: 1.1.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.42411346Z" + created: "2023-02-20T17:09:46.578846149Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 8a1ebc077d40cb4e31945e57cdf69a71c5c8ebe8cff7d1c976e8e862ad9710eb home: https://www.openfaas.com @@ -7139,7 +7165,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.21.tgz version: 1.0.21 - apiVersion: v1 - created: "2023-02-14T17:16:50.423623503Z" + created: "2023-02-20T17:09:46.5782822Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 3f28fd8eb6dd411a612e4092f1d569377dcfea9b247c40357b6ca93d2633f99c home: https://www.openfaas.com @@ -7160,7 +7186,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.20.tgz version: 1.0.20 - apiVersion: v1 - created: "2023-02-14T17:16:50.423176798Z" + created: "2023-02-20T17:09:46.577755231Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 655e12161299bfe0dad9a8c76a80619a133d1b6413924b1b26bd1980c9334bb2 home: https://www.openfaas.com @@ -7181,7 +7207,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.19.tgz version: 1.0.19 - apiVersion: v1 - created: "2023-02-14T17:16:50.422722673Z" + created: "2023-02-20T17:09:46.577218053Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b5485851da4921afc87ac73d8004570cd1f17219440944b76e3d187043d46f7a home: https://www.openfaas.com @@ -7202,7 +7228,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.18.tgz version: 1.0.18 - apiVersion: v1 - created: "2023-02-14T17:16:50.422299989Z" + created: "2023-02-20T17:09:46.576710696Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 49fdd14e168a14e83c4aa61674f44b7eeeca35ed98251d5abc0aa31fdcea8858 home: https://www.openfaas.com @@ -7223,7 +7249,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.17.tgz version: 1.0.17 - apiVersion: v1 - created: "2023-02-14T17:16:50.421876454Z" + created: "2023-02-20T17:09:46.576230959Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: f8e694e8b868524bfa8fec82239becb60d0e17b9384076856df0a303012138da home: https://www.openfaas.com @@ -7244,7 +7270,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.16.tgz version: 1.0.16 - apiVersion: v1 - created: "2023-02-14T17:16:50.421409569Z" + created: "2023-02-20T17:09:46.575741902Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 8b69ee7b5de254eb8d9f2a8db2574e74e6d9dccf995e06cb9a2316b780c678ca home: https://www.openfaas.com @@ -7265,7 +7291,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.15.tgz version: 1.0.15 - apiVersion: v1 - created: "2023-02-14T17:16:50.420312792Z" + created: "2023-02-20T17:09:46.575324158Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: e484ee66f94d3893ab4af2159a4514dac6e072639bae6f3bbe9801ae68112f78 home: https://www.openfaas.com @@ -7287,9 +7313,9 @@ entries: version: 1.0.14 postgres-connector: - apiVersion: v1 - created: "2023-02-14T17:16:50.732425967Z" + created: "2023-02-20T17:09:46.899699906Z" description: Trigger OpenFaaS functions from PostgreSQL - digest: 028c4a0258821b50fe31aabcff733647112a41da59203e6b7556071111518481 + digest: 25434d0b146569e4ba8ac928c74b79c22fba9537bdb812f5050d823734bfad29 home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -7307,7 +7333,7 @@ entries: - https://openfaas.github.io/faas-netes/postgres-connector-0.0.6.tgz version: 0.0.6 - apiVersion: v1 - created: "2023-02-14T17:16:50.732144298Z" + created: "2023-02-20T17:09:46.899359574Z" description: Trigger OpenFaaS functions from PostgreSQL digest: 9d2707588e81a2ad430f2cb5c4433ad4635082623f916ce02f96234407e0b7c2 home: https://www.openfaas.com @@ -7327,7 +7353,7 @@ entries: - https://openfaas.github.io/faas-netes/postgres-connector-0.0.5.tgz version: 0.0.5 - apiVersion: v1 - created: "2023-02-14T17:16:50.731883779Z" + created: "2023-02-20T17:09:46.899010362Z" description: Trigger OpenFaaS functions from PostgreSQL digest: 537621b43d5f04ee2e5ea04716873110a2b82b2bc91d28d3f17f08a02f9259fd home: https://www.openfaas.com @@ -7347,7 +7373,7 @@ entries: - https://openfaas.github.io/faas-netes/postgres-connector-0.0.4.tgz version: 0.0.4 - apiVersion: v1 - created: "2023-02-14T17:16:50.73162574Z" + created: "2023-02-20T17:09:46.89867321Z" description: Trigger OpenFaaS functions from PostgreSQL digest: f47cd883be4d8d2d39f6b288bda6bd50673b3259eb135db931ae86a0ff90d3d4 home: https://www.openfaas.com @@ -7367,7 +7393,7 @@ entries: - https://openfaas.github.io/faas-netes/postgres-connector-0.0.3.tgz version: 0.0.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.731341701Z" + created: "2023-02-20T17:09:46.898338389Z" description: Trigger OpenFaaS functions from PostgreSQL digest: ee3e01c2ff1212f7bb74a328a91744266e7c22921be50eab12a6324434cefbfb home: https://www.openfaas.com @@ -7387,7 +7413,7 @@ entries: - https://openfaas.github.io/faas-netes/postgres-connector-0.0.2.tgz version: 0.0.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.730557614Z" + created: "2023-02-20T17:09:46.897996707Z" description: Trigger OpenFaaS functions from PostgreSQL digest: 06f343bee14de814495f1a2d902a2e69d4df4c4e067bd6a5a68456d4a1559814 home: https://www.openfaas.com @@ -7408,9 +7434,9 @@ entries: version: 0.0.1 pro-builder: - apiVersion: v1 - created: "2023-02-14T17:16:50.736594318Z" + created: "2023-02-20T17:09:46.904796591Z" description: Build OpenFaaS functions via a REST API - digest: 58914b369e4d6fa8072aef6ac8835f0aa70d932c8fbf382a168c2880d202350a + digest: c30e1bc47a5e373053f17637609358e3c6f6a4db6cd68588e9c8f4ac1ede4713 home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -7428,7 +7454,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.9.tgz version: 0.3.9 - apiVersion: v1 - created: "2023-02-14T17:16:50.7360579Z" + created: "2023-02-20T17:09:46.904219321Z" description: Build OpenFaaS functions via a REST API digest: 350fd3d4341ab5ca5c57c098dba73ef22d5f097a443350c812ed6bffcab62d71 home: https://www.openfaas.com @@ -7448,7 +7474,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.8.tgz version: 0.3.8 - apiVersion: v1 - created: "2023-02-14T17:16:50.735402188Z" + created: "2023-02-20T17:09:46.903643551Z" description: Build OpenFaaS functions via a REST API digest: 2cde40035be1703b7a2650edca6abc42cb68a2c5d3dbae4830a553084c618ea0 home: https://www.openfaas.com @@ -7468,7 +7494,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.7.tgz version: 0.3.7 - apiVersion: v1 - created: "2023-02-14T17:16:50.73488516Z" + created: "2023-02-20T17:09:46.902932437Z" description: Build OpenFaaS functions via a REST API digest: dfd863b3af4dcb672b6cb999d96a263e20aec3330ecf90dfd4df6603a7f7c909 home: https://www.openfaas.com @@ -7488,7 +7514,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.6.tgz version: 0.3.6 - apiVersion: v1 - created: "2023-02-14T17:16:50.734188577Z" + created: "2023-02-20T17:09:46.901684034Z" description: Build OpenFaaS functions via a REST API digest: 7b96975b0140d83a9d03a8a630716adb58113dce86fd5f676f317a8b7172016a home: https://www.openfaas.com @@ -7508,7 +7534,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.5.tgz version: 0.3.5 - apiVersion: v1 - created: "2023-02-14T17:16:50.733507194Z" + created: "2023-02-20T17:09:46.901141305Z" description: Build OpenFaaS functions via a REST API digest: a50f2a8bbbbb8b40b91649fa29349d0d2f9009dba7c0fc43a91b20252f458771 home: https://www.openfaas.com @@ -7528,7 +7554,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.3.tgz version: 0.3.3 - apiVersion: v1 - created: "2023-02-14T17:16:50.733221434Z" + created: "2023-02-20T17:09:46.900768613Z" description: Build OpenFaaS functions via a REST API digest: 91a9569a561800b6385eca1008308b055e1eba0cb16159212aa883270213e711 home: https://www.openfaas.com @@ -7548,7 +7574,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.2.tgz version: 0.3.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.732947335Z" + created: "2023-02-20T17:09:46.900381269Z" description: Build OpenFaaS functions via a REST API digest: b2edc6840b2a1a2da795c3201a05498b0c85819c4b1a6dd13592364d7f7d44fa home: https://www.openfaas.com @@ -7568,7 +7594,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.1.tgz version: 0.3.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.732688316Z" + created: "2023-02-20T17:09:46.900042688Z" description: Build OpenFaaS functions via a REST API digest: 559ab7a218ecef5b37b29117955fed21a9ce5a51aeecf539e85ba635911e3805 home: https://www.openfaas.com @@ -7589,7 +7615,7 @@ entries: version: 0.3.0 probuilder: - apiVersion: v1 - created: "2023-02-14T17:16:50.737370074Z" + created: "2023-02-20T17:09:46.905403042Z" description: Build OpenFaaS functions via a REST API digest: f143268f50f71590b7138d7b28570b43bc1c7ead82a720110b651bcc3d66c271 home: https://www.openfaas.com @@ -7609,7 +7635,7 @@ entries: - https://openfaas.github.io/faas-netes/probuilder-0.2.0.tgz version: 0.2.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.736976781Z" + created: "2023-02-20T17:09:46.905102392Z" description: Build functions via API digest: 9b23240d618cdd993bb2586e073febe3ebb357fb8cadc708685d581e58be8ef8 home: https://www.openfaas.com @@ -7628,9 +7654,9 @@ entries: version: 0.1.0 queue-worker: - apiVersion: v2 - created: "2023-02-14T17:16:50.739042461Z" + created: "2023-02-20T17:09:46.90680601Z" description: JetStream for OpenFaaS queue-worker - digest: 5f0f311eeaa914f4566cafb841ea5e415272cf78ce0c35f58812f696fe083811 + digest: 2294220420db1faf000576c1d35e56648420e66fe37c915f16b1a1161381bab2 keywords: - openfaas - jetstream @@ -7647,7 +7673,7 @@ entries: - https://openfaas.github.io/faas-netes/queue-worker-0.1.3.tgz version: 0.1.3 - apiVersion: v2 - created: "2023-02-14T17:16:50.738761071Z" + created: "2023-02-20T17:09:46.906454258Z" description: JetStream for OpenFaaS queue-worker digest: df89f7957c4ad3545dc71adacaf76854e8c3d7f267e4f38632b572697dd65b6a keywords: @@ -7666,7 +7692,7 @@ entries: - https://openfaas.github.io/faas-netes/queue-worker-0.1.2.tgz version: 0.1.2 - apiVersion: v2 - created: "2023-02-14T17:16:50.738276225Z" + created: "2023-02-20T17:09:46.906081185Z" description: JetStream for OpenFaaS queue-worker digest: eabc088ca3b25089014d28c2b03183b97c472bea7d81e98bf8ca5d485d15d4d6 keywords: @@ -7685,7 +7711,7 @@ entries: - https://openfaas.github.io/faas-netes/queue-worker-0.1.1.tgz version: 0.1.1 - apiVersion: v2 - created: "2023-02-14T17:16:50.737815379Z" + created: "2023-02-20T17:09:46.905741734Z" description: JetStream for OpenFaaS queue-worker digest: e0b5a60f4d44c2b2c19987867fed6d05ae9d147b4b5c7b77b6d25609ec4c6ebf keywords: @@ -7705,9 +7731,9 @@ entries: version: 0.1.0 sns-connector: - apiVersion: v1 - created: "2023-02-14T17:16:50.739930201Z" + created: "2023-02-20T17:09:46.907602508Z" description: Invoke functions from an AWS SNS messages. - digest: b6ff062eaeef006fcca45d9b0f66d75610070614b10a0c48c4db871db7f45964 + digest: ce672109ed80fd328eeb65bae64483bae14d79bf49df588e476dd3ac02166837 home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -7726,7 +7752,7 @@ entries: - https://openfaas.github.io/faas-netes/sns-connector-0.1.1.tgz version: 0.1.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.739473505Z" + created: "2023-02-20T17:09:46.907182173Z" description: Invoke functions from an AWS SNS messages. digest: 1738055881df1912aaa0bb5eb5508bf133f1f87b20b59c04feb5cb9100d2cbbb home: https://www.openfaas.com @@ -7748,9 +7774,9 @@ entries: version: 0.1.0 sqs-connector: - apiVersion: v1 - created: "2023-02-14T17:16:50.744126392Z" + created: "2023-02-20T17:09:46.91028026Z" description: Connect OpenFaaS functions to SQS topics - digest: 3834d03279d50ef5910420c91b4e1b13723141869b38f6b83a2d9961219e6f8d + digest: fa5a1bf9a223beea673e1a21af80066af5b1ffeb51cc47d001db458d5eee1d15 home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -7768,7 +7794,7 @@ entries: - https://openfaas.github.io/faas-netes/sqs-connector-0.2.2.tgz version: 0.2.2 - apiVersion: v1 - created: "2023-02-14T17:16:50.742746386Z" + created: "2023-02-20T17:09:46.909803993Z" description: Connect OpenFaaS functions to SQS topics digest: 6d9b126365656d66ea8c9deee9b1bcd77e83fb89aff06d1ac1ccf722a9b1bd21 home: https://www.openfaas.com @@ -7788,7 +7814,7 @@ entries: - https://openfaas.github.io/faas-netes/sqs-connector-0.2.1.tgz version: 0.2.1 - apiVersion: v1 - created: "2023-02-14T17:16:50.742292701Z" + created: "2023-02-20T17:09:46.909368198Z" description: Connect OpenFaaS functions to SQS topics digest: 510aea96bff3e013fb909d7f5866ea3b97320d48963857c09996da3d5583dba6 home: https://www.openfaas.com @@ -7808,7 +7834,7 @@ entries: - https://openfaas.github.io/faas-netes/sqs-connector-0.2.0.tgz version: 0.2.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.74168453Z" + created: "2023-02-20T17:09:46.908964974Z" description: Connect OpenFaaS functions to SQS topics digest: 98cef218fcc6c3ffebc9a4ce77d6e8537623208e1c0af48a5ddf0ba12406279e home: https://www.openfaas.com @@ -7828,7 +7854,7 @@ entries: - https://openfaas.github.io/faas-netes/sqs-connector-0.1.0.tgz version: 0.1.0 - apiVersion: v1 - created: "2023-02-14T17:16:50.740880233Z" + created: "2023-02-20T17:09:46.90855772Z" description: Connect OpenFaaS functions to SQS topics digest: 9024b049319bec33ae2110f292c16c52a7b068154d6fa5387c10732068f6bef3 home: https://www.openfaas.com @@ -7848,7 +7874,7 @@ entries: - https://openfaas.github.io/faas-netes/sqs-connector-0.0.4.tgz version: 0.0.4 - apiVersion: v1 - created: "2023-02-14T17:16:50.740409197Z" + created: "2023-02-20T17:09:46.908153267Z" description: Connect OpenFaaS functions to SQS topics digest: 343e4c430df3a5e83b77585c25b60da4e2507e707131bff685ae39ab59834d22 home: https://www.openfaas.com @@ -7867,4 +7893,4 @@ entries: urls: - https://openfaas.github.io/faas-netes/sqs-connector-0.0.3.tgz version: 0.0.3 -generated: "2023-02-14T17:16:50.402625595Z" +generated: "2023-02-20T17:09:46.560289671Z" diff --git a/docs/kafka-connector-0.7.3.tgz b/docs/kafka-connector-0.7.3.tgz index 6bafc4330edddd64152dcd4f19547f5820669344..4eb43e25b14fd8149faa18d398426fda1e4b75ae 100644 GIT binary patch delta 6361 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 CLWV5> diff --git a/docs/nats-connector-0.3.2.tgz b/docs/nats-connector-0.3.2.tgz index e4e026c97f5c095e6082bc9b77d48105e6f736dd..075d3599107c9bc8f97b059a8bbdb8239a07e9a6 100644 GIT binary patch delta 1400 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 F003T4w(I}^ diff --git a/docs/openfaas-11.1.13.tgz b/docs/openfaas-11.1.13.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c3b85b070a707877780b95763e2868e2b35df006 GIT binary patch literal 34075 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 literal 0 HcmV?d00001 diff --git a/docs/postgres-connector-0.0.6.tgz b/docs/postgres-connector-0.0.6.tgz index f4ada5982e14353568ad1e3247ed319e2a45a4fa..8232e798f7d26522085a77dbe45ac2afb966ae6e 100644 GIT binary patch delta 4059 zcmV<14@6=N>BA-Pg?vF~p`klb&5 zx=B;?!TiBq?GA^-;e2p7!%S+EDAfH(3W1T4YVdMOl?fI!fa= z{|`?N51$+yA3Z;Qet7)s=QGm(O@v2 z&jXpEm{6*NNT!5E7GL>U(Rq+CGtI}jMioh6P#6n0C_4>Oj2RuIR2x)-a{L=E6M3Tz zjczf%ks1AvV}Fo|gxum{E>)~Yqz@&EOi9uQjcSI9qt>JkrL2=a;0%S)B&AFk$^RR*JyiiJ%7bglQmRQ089fFwd!9g2@|9y zS4j5A9$e-sno^BGfwKsOeKM8AHtBSAvH}bR0i4SV|KdK{Ab0z+^=i zH}POu@_$Fe;4l~xqA=quqIv`emgXyr6dKDKYbuyXN-i-eKpSP>7-=bkm>N2!8c7Y| zd)KDo1Mk-#EqdE8%g1&^htV)>{EOj zK`+X+ktwPX6B?D-uYTuQObyn*W8`SCM+ldR9)A&lJ-Cnw#5m3qNKtE=peEp7j9@~! zMhA6;#!ZIH#I8w7%{~-s?*vOrjvy7h*HREDKrChclbg$H`VkCEQRc?2E3JGE$un&f z()8MY9>KxkP}@FC7*sRLT?d8ZoblML$rK@_8OTY)aZzE#E@P1<1?YLveFR4y-;Ww$ z&VS4lG?#Nnc%EARN(Ees1XM1Z6jVqF)e8}wiy{5n>5uRX0r%5B=l23-2tg@9?iGcRKoh`2Emg{()*10nN?Sp|O)KV9D5iy0M=| zU{vl1`B|!4U;=(Vy>OD@6a{H)x#MNVcz1EiQrwHQI~ z-nC@mT z%vd@CjmB;z(JV52ky^GyQyjt5!Tmk4P~_}m=5|k0ze%?{2m9>y;sGh(`VixU33S`K z!faUR9`x()H0K5af6ip}7J{FA%xNLt&QK{9Biz|dh=}0i$UU<3DxXZ)M}O$`Yh);5 z_v|TrSq2m37?Ygy1$@XUXA_1o&@6Mb2jpk;*d4sFW7v6E6Bf~2BWRf-{8v6k<$`oS z;|W6^YoH4K-o}S8X38{tJ68Ajg)7rU=(gU*T<9!txZ z*R;0YKA6BvF<~aq`0njWP*-dyU zG0RRrfctxYHXzeX3KVALp}B*wrpuvgTD1H7e*I>>T`NYJqGHCK_%%a=D^xS)0s{wB zc;nGh_)r4SEDLTc*MA={Iq;|byUldDw+pO9^q>)|q`>m**Y?@Y$7CK&g}i;cXUB2NQ79en;`Ze)4A=?Q9R7yT{s*awAo@FADR(P{T({yeKZ=Cxgl zol5!Aqt)eMlt1#avFk-c{vV_P+jM|Hg{3@UtF_LJC4@A^S$|mZ3LsN5MKi_Rt&)xu z&2R)gcL3Qdpm>Yq2NJ!D>Xsa}Z6&^v6S5t{R+Uc*`1L$-jwg&Z0g$C?AFJg zP3p_x?fVA|>5%msoywh2g}O6(_r!k{4XbkiyA#!r)9!FBvQWegp{p~TU3%K9=v$F7 zX$ z`*_e8uE#Dzxb)FfNg;E6Q|E)Wj?+myts7=1Gufo4hFDEP&!`-`itW34?Yc>2F3e3v z*J5a@;zQJ{oJ1!XxNasT*iDgB+{)4}-VH3>PGl#+xQ@sI?550PZY8pd_hCdfjK4u) zZp+M`x!^Z~udOA}tKHXz9ibT^W)a)tF*m#iEmX1{IWimTvH$%QBmcqt?BSpJ8Q29R1>wa zMeTh+$Q2?`uH^`REw37^?vuz09e*n9+X$X%W>6E-Us1knw=?bP)3PU3U zxwDuPCStIWVrmWNuPw?l#Udt>n)vR$h!WyEOVYV7zpBP82}*NqU`l6}*11%-)+ASS z6*XI~#Hw#eo3JET*u0vt0nMt_sW7_CbyQ;X#j0E;ETX(TI=3se?~1+56o1_*Fq^Ol zG#bN1qG5^(|M11FC+#Z6ik+-uhfl^^+T7~fS@_T1=Q#M5_?JcK){2h^3Bzzq^|VoW zR+Ot3SP~SdSOov$c7J_QMKr~mZh%t)_U-)LnPfTQi*Nq<_VwAIn*8A6{N>r3t20YN zV=8o+{>BuVxkduae3d7JzmW>w*QsTH4qovCr#XTq{8@HbZt^S@Z z<*PhP6pdF^qE>^fD)B6pte9K%yPi=;P5Tq*N}FGe|8SRM=vdCMOnG?!V7*pBtk=SN z3PwVfb8dM_#R3G*%YTHkb$N~Tr4Zu`xy(`V9rTwPta|xJ zx2=OZV#7J*VRw>O#@YyHN9t=`jVmBhm6tx;@4(;Skr2AXRDbC2m9zkM;B07(S-2j+ z65F-QA>27lYnGMjrCV2xi8O9reMY;hZDq?Hge_tlo*^vzb%|}BPJ5T&y{t8`)jnq* z<_NL0-lAcFqbU`MpB~fR8Ls5>9fZy+t!1qvws1X5KzDHJEf{FbsB)xn<_&szmTe@^ zEaQvvGMmqY0DlWGfbjbChl{f}r?1aOr!TM1-@Xa=f%lhZ&N0%j5~cHKYCTSPeNZ~h>%-zs+Wz%X@h)`y==IjiS;3D^KF9TY zO+T_UPh0oQO1Nr|3K8Xe-|w2oc0=+HS=?B&RK|rhEPsS>t76FlcTwG*JH0$F6Y4t{y5H6A zAl!7VFMlj_xKopDtz%U@T~*&ZOW~vMat8H{n!0umC=6B5K4#G_mTbuGSF<4ng z>qaR2^ZNSI1xGQY*dy}VQRMrkwrC&Sn)7kRch!+vB zx8c@<9&Ds#%lDGlBH32EBY0OO;L6LGPDlJj%adFW7JsE;!W8$0-Hok3zU^iW8adFG zN9QtuGL>2w&j7CcVK>G_pgMx^y|(twI=ABL@@75RKh3xTR6cT#I*(nS1MgO_)h%GvrG zf`puMUN{#F)?S_?6&ORF`2gOMGU~=UqKsFXXAvvLuyM(seQf&J9@}GkY=8Oo{{a91 N|Np@v(+vPj002f}3E}_% delta 4014 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 U{AZQ_KL7y#|KZYiPXM9-01`~LlmGw# delta 11859 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 H06G8wP}m!W delta 3116 zcmV+{4Ab+<7|9rrJb&SG+qe18?oIDfi=t#H$!R7tO_Q`ud&zlXH#eQOV?pFn zL<|B90LoS^_t`rDNQ$B*Tbc7Ea~OFnBZ=9X%aB9Sx#r_$V42JsC!iAb+}7E_Res8>${fKYOh1 zz&wJ%P5$kaJvKNR{Xb>47Xz zq?BsXgO6ym>q>f_p7em~rHDyRnJ|ZeAVL6@S1m;<+LMHq5w&Et~H+#6(R+32+9)(AQD0Ev%PhdbuPA}hx zl(Tte+;>^{o~JBFS(*t1gFJ9#@6o8`3u7=ZjJEYr(0^3_M42NUMmiu&FvBR{Xt4DM zFp8eRd;CN?;mWpLfrpW<}qX^yzgGx{iC#V*v;I&dxxwawv zktXnGYVd+CUCogrVll$s1zk|a>5QXm8P#<4=p-|yaE!i`3EEkWqGyMr;rEB*C^{TR z!^3fObbmOGMgbvAXpBpRr$3xbAf;R*A#)EmApn`wcBU3^((hLdVZAB=0Vt%h6wjh( zQ9y{GMz{Le&u!GB;c#d_6~|t3 zxQ4bO0K`)0GDqb*C8e@rd)MmgwMYkqa5;CpCx19A=e01v`kI_trY)4@7+77?vQ#lT z@@jDHN60akYU#D+E%O}3MLB_B99flf`h8q-ek?hQmlJrCzLVxyp+;c{5i-FO;wX^ALIh|NJ*0G)=88E?x82-mdpvHtfIE22Ks?{#k~+K&3-d{Crn%hy6bq zjenz#{eLnXKG^>+Qm(H0kIC!Hf{Fx8hHjgKOx^F;g#+Yq|N5F-UG*TrlnI2OtuvwR z5I}EDLQ8HS^r3{^_z-^Z#|lgN;{ugp3Bn4DDn$%Wj@(a{pOk6JE+OazP+_4+>`&rY ze5sHc1lo*{mYgr)Q%N~X87B5<=a>)4Pk-pK9lfz5*okPEVN6Snpk=fH$ERK&PB zgZ5_Irqf-6ud5l;IF_X_)&iCq@0^_L^uqUfx64>X_`3;hXR`dGZR~%7oOVedccn>`74mgXSDoAecx{7#KwD`B$mG zmL|EH8zk-QNtbxt){$&ZMbhT62f_AyVz5b6%cqwzj?eoGs`_4xx?i=_|JNN+EZRe@ zW$5x@XPK;1RqNt1-G37ZTJv$aGfNBC*TF4tRu}h$v$S`>d6Dc3=&9?o%5At+>TO@( zI&T-YQg(ZBepZ{G&zwTbYHc3`f}CESH5to&;hPR&o!#6$jfVEjb+_`mD}}?}6J& zojc6kLQrVb@~mF}{Y0^GF>$+$J^Te_drG;v!`Ka5-FAE)boYwnHbu9vnK8v#EEC*E zB%5~{w+P&&@Am-Ya;`&1yqixh=VvHlnJ}?8q`xoNWYD|pw>GY8dCFa$+qzYn{3!Tx z0`?TrYRE0bF@H7L1cGhO$TMjj@C7s3+Dx>r71oY%R_M8P zg!)!ujo#c-{7mH51;`q_eJipz{@0Fe9?IQiBmNIASz4eG<<8qx$Y|U6IZE_D}t(7oxugn$h^YEWidF znmi8mMSnpahckLk9)~8kzolYx^7y~x06tK~WU1lJtJj)@g_0jJHY8*T(!M8G@*@cs z+IrdkuOVr;vH#z{e(~z<>o8C5cZ@ss|9CLE@&0cxe)_QgzeG9M>y;nz$v~h-D_b`6^dyL;eXiQohqbp1~yc17Y@KuSjzHu3V{m1 zOQwxALk+^Qk`R~L$Q+fsixY^6zp71NO&nPNy@fGk2v0 zWieMYLC{=Y_~b;Buj#kt0RJKYy&kK8{a2I6Yx-0T8V$5!tmoraeK(kY-Ws|?wJkDl zk$=|@YFgbo0oe1wIJfg9?RB5W!D)uDJuT-`e_%3dKxeY#3Cs}uwGbw-f)hk&y%z-sTqkub_Pa8lp#qt1n35)i zZTEV03AlpkVCn%nBC$Ac=_Sj{+`T1pQ(pyUN%uv<1p5q;5!GPnWuo&VSu_ zvK$>7MlC_3aEBdQKP9vcbd5j5)SiqIremrcB{Q&^4x-L*HV&_c$}7${hqS;pz=s){ z3q%1nIA<*B3`|bQUVAgiKoy?Rr4sz)L8@$bU-lDzm`>?06po$tyfHUoo z|8jbI4BAjr+P!MS|BH;pnH#|Cet)%??q!P~%$*q(#>f^}?d+ELRxsW1CbD9$o&2h& z>Jnkpv<7c{Kt=A%%B=DrPA#W9o=!GWZE{FZNav5)w-2Pt2y9u4s|N7 zdXpQ%iI4m+sZ9R_rXRHwQzh&Cr`3C13()%gwGX%t<)J*3hw@Oimj49+0RR6PM&0WG GIsgEX)G$~8 diff --git a/docs/sns-connector-0.1.1.tgz b/docs/sns-connector-0.1.1.tgz index 630e80d35cbf3d9fac08f559cb3dee5f6a86ff19..070d62cfae1962165285bd3b6c5d24e6b929c660 100644 GIT binary patch delta 4986 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 E09_!@2LJ#7 delta 4989 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 H09pV58YQlD diff --git a/docs/sqs-connector-0.2.2.tgz b/docs/sqs-connector-0.2.2.tgz index 16e439e3f55d65e61478faec5bf8f0308cc21857..dea4f7e294b8e995a14b8a27577f06b79ff976b0 100644 GIT binary patch delta 4042 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 Date: Sat, 25 Feb 2023 01:15:12 +0000 Subject: [PATCH 17/37] Bump golang.org/x/net from 0.0.0-20220624214902-1bab6f366d9e to 0.7.0 Bumps [golang.org/x/net](https://github.com/golang/net) from 0.0.0-20220624214902-1bab6f366d9e to 0.7.0. - [Release notes](https://github.com/golang/net/releases) - [Commits](https://github.com/golang/net/commits/v0.7.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] --- go.mod | 15 +- go.sum | 21 +- .../x/mod/internal/lazyregexp/lazyre.go | 78 ++ vendor/golang.org/x/mod/module/module.go | 69 +- vendor/golang.org/x/mod/module/pseudo.go | 250 ++++++ vendor/golang.org/x/mod/semver/semver.go | 30 +- vendor/golang.org/x/net/AUTHORS | 3 - vendor/golang.org/x/net/CONTRIBUTORS | 3 - vendor/golang.org/x/net/context/go17.go | 4 +- vendor/golang.org/x/net/http2/flow.go | 88 +- vendor/golang.org/x/net/http2/frame.go | 33 +- vendor/golang.org/x/net/http2/headermap.go | 18 + vendor/golang.org/x/net/http2/hpack/encode.go | 7 +- vendor/golang.org/x/net/http2/hpack/hpack.go | 97 ++- .../x/net/http2/hpack/static_table.go | 188 ++++ vendor/golang.org/x/net/http2/hpack/tables.go | 78 +- vendor/golang.org/x/net/http2/http2.go | 8 +- vendor/golang.org/x/net/http2/server.go | 329 ++++--- vendor/golang.org/x/net/http2/transport.go | 321 ++++--- .../golang.org/x/sys/execabs/execabs_go119.go | 8 +- vendor/golang.org/x/sys/unix/gccgo.go | 4 +- vendor/golang.org/x/sys/unix/gccgo_c.c | 4 +- vendor/golang.org/x/sys/unix/ioctl.go | 4 +- vendor/golang.org/x/sys/unix/mkall.sh | 4 +- vendor/golang.org/x/sys/unix/sockcmsg_unix.go | 14 + .../golang.org/x/sys/unix/syscall_darwin.go | 1 + .../x/sys/unix/syscall_dragonfly.go | 1 + .../golang.org/x/sys/unix/syscall_freebsd.go | 1 + .../x/sys/unix/syscall_freebsd_386.go | 9 +- .../x/sys/unix/syscall_freebsd_amd64.go | 9 +- .../x/sys/unix/syscall_freebsd_arm.go | 9 +- .../x/sys/unix/syscall_freebsd_arm64.go | 9 +- .../x/sys/unix/syscall_freebsd_riscv64.go | 9 +- vendor/golang.org/x/sys/unix/syscall_hurd.go | 22 + .../golang.org/x/sys/unix/syscall_hurd_386.go | 29 + vendor/golang.org/x/sys/unix/syscall_linux.go | 52 +- .../golang.org/x/sys/unix/syscall_netbsd.go | 15 + .../golang.org/x/sys/unix/syscall_openbsd.go | 1 + .../x/sys/unix/syscall_openbsd_libc.go | 4 +- .../golang.org/x/sys/unix/syscall_solaris.go | 1 + vendor/golang.org/x/sys/unix/syscall_unix.go | 57 +- vendor/golang.org/x/sys/unix/timestruct.go | 2 +- vendor/golang.org/x/sys/unix/xattr_bsd.go | 9 +- vendor/golang.org/x/sys/unix/zerrors_linux.go | 30 +- .../x/sys/unix/zerrors_linux_386.go | 1 + .../x/sys/unix/zerrors_linux_amd64.go | 1 + .../x/sys/unix/zerrors_linux_arm.go | 1 + .../x/sys/unix/zerrors_linux_arm64.go | 1 + .../x/sys/unix/zerrors_linux_loong64.go | 1 + .../x/sys/unix/zerrors_linux_mips.go | 1 + .../x/sys/unix/zerrors_linux_mips64.go | 1 + .../x/sys/unix/zerrors_linux_mips64le.go | 1 + .../x/sys/unix/zerrors_linux_mipsle.go | 1 + .../x/sys/unix/zerrors_linux_ppc.go | 1 + .../x/sys/unix/zerrors_linux_ppc64.go | 1 + .../x/sys/unix/zerrors_linux_ppc64le.go | 1 + .../x/sys/unix/zerrors_linux_riscv64.go | 1 + .../x/sys/unix/zerrors_linux_s390x.go | 1 + .../x/sys/unix/zerrors_linux_sparc64.go | 1 + .../x/sys/unix/zerrors_openbsd_386.go | 356 ++++++-- .../x/sys/unix/zerrors_openbsd_amd64.go | 189 +++- .../x/sys/unix/zerrors_openbsd_arm.go | 348 ++++++-- .../x/sys/unix/zerrors_openbsd_arm64.go | 160 +++- .../x/sys/unix/zerrors_openbsd_mips64.go | 95 +- .../x/sys/unix/zsyscall_dragonfly_amd64.go | 10 + .../x/sys/unix/zsyscall_freebsd_386.go | 10 + .../x/sys/unix/zsyscall_freebsd_amd64.go | 10 + .../x/sys/unix/zsyscall_freebsd_arm.go | 10 + .../x/sys/unix/zsyscall_freebsd_arm64.go | 10 + .../x/sys/unix/zsyscall_freebsd_riscv64.go | 10 + .../golang.org/x/sys/unix/zsyscall_linux.go | 11 + .../x/sys/unix/zsyscall_netbsd_386.go | 10 + .../x/sys/unix/zsyscall_netbsd_amd64.go | 10 + .../x/sys/unix/zsyscall_netbsd_arm.go | 10 + .../x/sys/unix/zsyscall_netbsd_arm64.go | 10 + .../x/sys/unix/zsyscall_openbsd_386.go | 14 + .../x/sys/unix/zsyscall_openbsd_386.s | 137 +-- .../x/sys/unix/zsyscall_openbsd_amd64.go | 14 + .../x/sys/unix/zsyscall_openbsd_amd64.s | 137 +-- .../x/sys/unix/zsyscall_openbsd_arm.go | 14 + .../x/sys/unix/zsyscall_openbsd_arm.s | 137 +-- .../x/sys/unix/zsyscall_openbsd_arm64.go | 14 + .../x/sys/unix/zsyscall_openbsd_arm64.s | 137 +-- .../x/sys/unix/zsyscall_openbsd_mips64.go | 812 +++++++++++++++--- .../x/sys/unix/zsyscall_openbsd_mips64.s | 669 +++++++++++++++ .../x/sys/unix/zsyscall_openbsd_ppc64.go | 14 + .../x/sys/unix/zsyscall_openbsd_ppc64.s | 6 + .../x/sys/unix/zsyscall_openbsd_riscv64.go | 14 + .../x/sys/unix/zsyscall_openbsd_riscv64.s | 137 +-- .../x/sys/unix/zsyscall_solaris_amd64.go | 13 + .../x/sys/unix/zsysctl_openbsd_386.go | 51 +- .../x/sys/unix/zsysctl_openbsd_amd64.go | 17 +- .../x/sys/unix/zsysctl_openbsd_arm.go | 51 +- .../x/sys/unix/zsysctl_openbsd_arm64.go | 11 +- .../x/sys/unix/zsysctl_openbsd_mips64.go | 3 +- .../x/sys/unix/zsysnum_openbsd_mips64.go | 1 + vendor/golang.org/x/sys/unix/ztypes_linux.go | 217 ++++- .../x/sys/unix/ztypes_netbsd_386.go | 84 ++ .../x/sys/unix/ztypes_netbsd_amd64.go | 84 ++ .../x/sys/unix/ztypes_netbsd_arm.go | 84 ++ .../x/sys/unix/ztypes_netbsd_arm64.go | 84 ++ .../x/sys/unix/ztypes_openbsd_386.go | 97 +-- .../x/sys/unix/ztypes_openbsd_amd64.go | 33 +- .../x/sys/unix/ztypes_openbsd_arm.go | 9 +- .../x/sys/unix/ztypes_openbsd_arm64.go | 9 +- .../x/sys/unix/ztypes_openbsd_mips64.go | 9 +- .../x/sys/windows/syscall_windows.go | 15 +- .../x/sys/windows/zsyscall_windows.go | 7 + vendor/golang.org/x/term/AUTHORS | 3 - vendor/golang.org/x/term/CONTRIBUTORS | 3 - vendor/golang.org/x/term/term.go | 10 +- vendor/golang.org/x/term/terminal.go | 3 +- vendor/golang.org/x/text/AUTHORS | 3 - vendor/golang.org/x/text/CONTRIBUTORS | 3 - vendor/golang.org/x/text/unicode/bidi/core.go | 26 +- .../golang.org/x/text/unicode/bidi/trieval.go | 12 - .../x/text/unicode/norm/forminfo.go | 9 +- .../x/text/unicode/norm/normalize.go | 11 +- .../x/text/unicode/norm/tables13.0.0.go | 4 +- vendor/golang.org/x/tools/AUTHORS | 3 - vendor/golang.org/x/tools/CONTRIBUTORS | 3 - .../x/tools/go/ast/astutil/enclosing.go | 49 +- .../x/tools/go/ast/astutil/imports.go | 7 +- .../x/tools/go/ast/astutil/rewrite.go | 21 +- vendor/golang.org/x/tools/imports/forward.go | 2 +- .../x/tools/internal/fastwalk/fastwalk.go | 6 +- .../x/tools/internal/gocommand/invoke.go | 22 +- .../x/tools/internal/gocommand/vendor.go | 22 +- .../x/tools/internal/gopathwalk/walk.go | 20 +- .../x/tools/internal/imports/fix.go | 4 +- .../x/tools/internal/imports/imports.go | 29 +- .../x/tools/internal/imports/mod.go | 37 +- .../x/tools/internal/imports/sortimports.go | 48 +- .../x/tools/internal/imports/zstdlib.go | 84 +- .../x/tools/internal/typeparams/common.go | 179 ++++ .../x/tools/internal/typeparams/coretype.go | 122 +++ .../x/tools/internal/typeparams/doc.go | 11 - .../internal/typeparams/enabled_go117.go | 12 + .../internal/typeparams/enabled_go118.go | 15 + .../x/tools/internal/typeparams/normalize.go | 218 +++++ .../tools/internal/typeparams/notypeparams.go | 90 -- .../x/tools/internal/typeparams/termlist.go | 163 ++++ .../x/tools/internal/typeparams/typeparams.go | 105 --- .../internal/typeparams/typeparams_go117.go | 197 +++++ .../internal/typeparams/typeparams_go118.go | 151 ++++ .../x/tools/internal/typeparams/typeterm.go | 170 ++++ vendor/golang.org/x/xerrors/LICENSE | 27 - vendor/golang.org/x/xerrors/PATENTS | 22 - vendor/golang.org/x/xerrors/README | 2 - vendor/golang.org/x/xerrors/adaptor.go | 193 ----- vendor/golang.org/x/xerrors/codereview.cfg | 1 - vendor/golang.org/x/xerrors/doc.go | 23 - vendor/golang.org/x/xerrors/errors.go | 33 - vendor/golang.org/x/xerrors/fmt.go | 190 ---- vendor/golang.org/x/xerrors/format.go | 34 - vendor/golang.org/x/xerrors/frame.go | 56 -- .../golang.org/x/xerrors/internal/internal.go | 8 - vendor/golang.org/x/xerrors/wrap.go | 112 --- vendor/modules.txt | 21 +- 159 files changed, 6212 insertions(+), 2744 deletions(-) create mode 100644 vendor/golang.org/x/mod/internal/lazyregexp/lazyre.go create mode 100644 vendor/golang.org/x/mod/module/pseudo.go delete mode 100644 vendor/golang.org/x/net/AUTHORS delete mode 100644 vendor/golang.org/x/net/CONTRIBUTORS create mode 100644 vendor/golang.org/x/net/http2/hpack/static_table.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_hurd.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_hurd_386.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s delete mode 100644 vendor/golang.org/x/term/AUTHORS delete mode 100644 vendor/golang.org/x/term/CONTRIBUTORS delete mode 100644 vendor/golang.org/x/text/AUTHORS delete mode 100644 vendor/golang.org/x/text/CONTRIBUTORS delete mode 100644 vendor/golang.org/x/tools/AUTHORS delete mode 100644 vendor/golang.org/x/tools/CONTRIBUTORS create mode 100644 vendor/golang.org/x/tools/internal/typeparams/common.go create mode 100644 vendor/golang.org/x/tools/internal/typeparams/coretype.go delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/doc.go create mode 100644 vendor/golang.org/x/tools/internal/typeparams/enabled_go117.go create mode 100644 vendor/golang.org/x/tools/internal/typeparams/enabled_go118.go create mode 100644 vendor/golang.org/x/tools/internal/typeparams/normalize.go delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/notypeparams.go create mode 100644 vendor/golang.org/x/tools/internal/typeparams/termlist.go delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/typeparams.go create mode 100644 vendor/golang.org/x/tools/internal/typeparams/typeparams_go117.go create mode 100644 vendor/golang.org/x/tools/internal/typeparams/typeparams_go118.go create mode 100644 vendor/golang.org/x/tools/internal/typeparams/typeterm.go delete mode 100644 vendor/golang.org/x/xerrors/LICENSE delete mode 100644 vendor/golang.org/x/xerrors/PATENTS delete mode 100644 vendor/golang.org/x/xerrors/README delete mode 100644 vendor/golang.org/x/xerrors/adaptor.go delete mode 100644 vendor/golang.org/x/xerrors/codereview.cfg delete mode 100644 vendor/golang.org/x/xerrors/doc.go delete mode 100644 vendor/golang.org/x/xerrors/errors.go delete mode 100644 vendor/golang.org/x/xerrors/fmt.go delete mode 100644 vendor/golang.org/x/xerrors/format.go delete mode 100644 vendor/golang.org/x/xerrors/frame.go delete mode 100644 vendor/golang.org/x/xerrors/internal/internal.go delete mode 100644 vendor/golang.org/x/xerrors/wrap.go diff --git a/go.mod b/go.mod index abcd7cf41..af6360a6d 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,6 @@ require ( github.com/gorilla/mux v1.8.0 github.com/openfaas/faas-provider v0.19.1 github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v1.14.0 k8s.io/api v0.22.2 k8s.io/apimachinery v0.22.2 k8s.io/client-go v0.22.2 @@ -35,19 +34,19 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/onsi/ginkgo v1.16.4 // indirect github.com/onsi/gomega v1.14.0 // indirect + github.com/prometheus/client_golang v1.14.0 // indirect github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - golang.org/x/mod v0.4.2 // indirect - golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e // indirect + golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect + golang.org/x/net v0.7.0 // indirect golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2 // indirect - golang.org/x/sys v0.1.0 // indirect - golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect - golang.org/x/text v0.3.7 // indirect + golang.org/x/sys v0.5.0 // indirect + golang.org/x/term v0.5.0 // indirect + golang.org/x/text v0.7.0 // indirect golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac // indirect - golang.org/x/tools v0.1.5 // indirect - golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f // indirect + golang.org/x/tools v0.1.12 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/go.sum b/go.sum index 8f0962cfd..f15c11e49 100644 --- a/go.sum +++ b/go.sum @@ -421,8 +421,9 @@ 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/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -472,8 +473,8 @@ golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e h1:TsQ7F31D3bUCLeqPT0u+yjp1guoArKaNKmCr22PYgTQ= -golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -582,13 +583,14 @@ golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -597,8 +599,9 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -658,15 +661,15 @@ golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= 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= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f h1:uF6paiQQebLeSXkrTqHqz0MXhXXS1KgF41eUdBNvxK0= golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= diff --git a/vendor/golang.org/x/mod/internal/lazyregexp/lazyre.go b/vendor/golang.org/x/mod/internal/lazyregexp/lazyre.go new file mode 100644 index 000000000..2681af35a --- /dev/null +++ b/vendor/golang.org/x/mod/internal/lazyregexp/lazyre.go @@ -0,0 +1,78 @@ +// Copyright 2018 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 lazyregexp is a thin wrapper over regexp, allowing the use of global +// regexp variables without forcing them to be compiled at init. +package lazyregexp + +import ( + "os" + "regexp" + "strings" + "sync" +) + +// Regexp is a wrapper around regexp.Regexp, where the underlying regexp will be +// compiled the first time it is needed. +type Regexp struct { + str string + once sync.Once + rx *regexp.Regexp +} + +func (r *Regexp) re() *regexp.Regexp { + r.once.Do(r.build) + return r.rx +} + +func (r *Regexp) build() { + r.rx = regexp.MustCompile(r.str) + r.str = "" +} + +func (r *Regexp) FindSubmatch(s []byte) [][]byte { + return r.re().FindSubmatch(s) +} + +func (r *Regexp) FindStringSubmatch(s string) []string { + return r.re().FindStringSubmatch(s) +} + +func (r *Regexp) FindStringSubmatchIndex(s string) []int { + return r.re().FindStringSubmatchIndex(s) +} + +func (r *Regexp) ReplaceAllString(src, repl string) string { + return r.re().ReplaceAllString(src, repl) +} + +func (r *Regexp) FindString(s string) string { + return r.re().FindString(s) +} + +func (r *Regexp) FindAllString(s string, n int) []string { + return r.re().FindAllString(s, n) +} + +func (r *Regexp) MatchString(s string) bool { + return r.re().MatchString(s) +} + +func (r *Regexp) SubexpNames() []string { + return r.re().SubexpNames() +} + +var inTest = len(os.Args) > 0 && strings.HasSuffix(strings.TrimSuffix(os.Args[0], ".exe"), ".test") + +// New creates a new lazy regexp, delaying the compiling work until it is first +// needed. If the code is being run as part of tests, the regexp compiling will +// happen immediately. +func New(str string) *Regexp { + lr := &Regexp{str: str} + if inTest { + // In tests, always compile the regexps early. + lr.re() + } + return lr +} diff --git a/vendor/golang.org/x/mod/module/module.go b/vendor/golang.org/x/mod/module/module.go index 0e0301483..c26d1d29e 100644 --- a/vendor/golang.org/x/mod/module/module.go +++ b/vendor/golang.org/x/mod/module/module.go @@ -15,7 +15,7 @@ // but additional checking functions, most notably Check, verify that // a particular path, version pair is valid. // -// Escaped Paths +// # Escaped Paths // // Module paths appear as substrings of file system paths // (in the download cache) and of web server URLs in the proxy protocol. @@ -55,7 +55,7 @@ // Import paths have never allowed exclamation marks, so there is no // need to define how to escape a literal !. // -// Unicode Restrictions +// # Unicode Restrictions // // Today, paths are disallowed from using Unicode. // @@ -102,9 +102,9 @@ import ( "strings" "unicode" "unicode/utf8" + "errors" "golang.org/x/mod/semver" - errors "golang.org/x/xerrors" ) // A Version (for clients, a module.Version) is defined by a module path and version pair. @@ -192,6 +192,21 @@ func (e *InvalidVersionError) Error() string { func (e *InvalidVersionError) Unwrap() error { return e.Err } +// An InvalidPathError indicates a module, import, or file path doesn't +// satisfy all naming constraints. See CheckPath, CheckImportPath, +// and CheckFilePath for specific restrictions. +type InvalidPathError struct { + Kind string // "module", "import", or "file" + Path string + Err error +} + +func (e *InvalidPathError) Error() string { + return fmt.Sprintf("malformed %s path %q: %v", e.Kind, e.Path, e.Err) +} + +func (e *InvalidPathError) Unwrap() error { return e.Err } + // Check checks that a given module path, version pair is valid. // In addition to the path being a valid module path // and the version being a valid semantic version, @@ -271,12 +286,7 @@ func fileNameOK(r rune) bool { if '0' <= r && r <= '9' || 'A' <= r && r <= 'Z' || 'a' <= r && r <= 'z' { return true } - for i := 0; i < len(allowed); i++ { - if rune(allowed[i]) == r { - return true - } - } - return false + return strings.ContainsRune(allowed, r) } // It may be OK to add more ASCII punctuation here, but only carefully. // For example Windows disallows < > \, and macOS disallows :, so we must not allow those. @@ -296,30 +306,36 @@ func fileNameOK(r rune) bool { // this second requirement is replaced by a requirement that the path // follow the gopkg.in server's conventions. // Third, no path element may begin with a dot. -func CheckPath(path string) error { +func CheckPath(path string) (err error) { + defer func() { + if err != nil { + err = &InvalidPathError{Kind: "module", Path: path, Err: err} + } + }() + if err := checkPath(path, modulePath); err != nil { - return fmt.Errorf("malformed module path %q: %v", path, err) + return err } i := strings.Index(path, "/") if i < 0 { i = len(path) } if i == 0 { - return fmt.Errorf("malformed module path %q: leading slash", path) + return fmt.Errorf("leading slash") } if !strings.Contains(path[:i], ".") { - return fmt.Errorf("malformed module path %q: missing dot in first path element", path) + return fmt.Errorf("missing dot in first path element") } if path[0] == '-' { - return fmt.Errorf("malformed module path %q: leading dash in first path element", path) + return fmt.Errorf("leading dash in first path element") } for _, r := range path[:i] { if !firstPathOK(r) { - return fmt.Errorf("malformed module path %q: invalid char %q in first path element", path, r) + return fmt.Errorf("invalid char %q in first path element", r) } } if _, _, ok := SplitPathVersion(path); !ok { - return fmt.Errorf("malformed module path %q: invalid version", path) + return fmt.Errorf("invalid version") } return nil } @@ -343,7 +359,7 @@ func CheckPath(path string) error { // subtleties of Unicode. func CheckImportPath(path string) error { if err := checkPath(path, importPath); err != nil { - return fmt.Errorf("malformed import path %q: %v", path, err) + return &InvalidPathError{Kind: "import", Path: path, Err: err} } return nil } @@ -358,12 +374,13 @@ const ( filePath ) -// checkPath checks that a general path is valid. -// It returns an error describing why but not mentioning path. -// Because these checks apply to both module paths and import paths, -// the caller is expected to add the "malformed ___ path %q: " prefix. -// fileName indicates whether the final element of the path is a file name -// (as opposed to a directory name). +// checkPath checks that a general path is valid. kind indicates what +// specific constraints should be applied. +// +// checkPath returns an error describing why the path is not valid. +// Because these checks apply to module, import, and file paths, +// and because other checks may be applied, the caller is expected to wrap +// this error with InvalidPathError. func checkPath(path string, kind pathKind) error { if !utf8.ValidString(path) { return fmt.Errorf("invalid UTF-8") @@ -371,7 +388,7 @@ func checkPath(path string, kind pathKind) error { if path == "" { return fmt.Errorf("empty string") } - if path[0] == '-' { + if path[0] == '-' && kind != filePath { return fmt.Errorf("leading dash") } if strings.Contains(path, "//") { @@ -477,7 +494,7 @@ func checkElem(elem string, kind pathKind) error { // subtleties of Unicode. func CheckFilePath(path string) error { if err := checkPath(path, filePath); err != nil { - return fmt.Errorf("malformed file path %q: %v", path, err) + return &InvalidPathError{Kind: "file", Path: path, Err: err} } return nil } @@ -781,6 +798,7 @@ func unescapeString(escaped string) (string, bool) { // GOPRIVATE environment variable, as described by 'go help module-private'. // // It ignores any empty or malformed patterns in the list. +// Trailing slashes on patterns are ignored. func MatchPrefixPatterns(globs, target string) bool { for globs != "" { // Extract next non-empty glob in comma-separated list. @@ -790,6 +808,7 @@ func MatchPrefixPatterns(globs, target string) bool { } else { glob, globs = globs, "" } + glob = strings.TrimSuffix(glob, "/") if glob == "" { continue } diff --git a/vendor/golang.org/x/mod/module/pseudo.go b/vendor/golang.org/x/mod/module/pseudo.go new file mode 100644 index 000000000..f04ad3788 --- /dev/null +++ b/vendor/golang.org/x/mod/module/pseudo.go @@ -0,0 +1,250 @@ +// Copyright 2018 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. + +// Pseudo-versions +// +// Code authors are expected to tag the revisions they want users to use, +// including prereleases. However, not all authors tag versions at all, +// and not all commits a user might want to try will have tags. +// A pseudo-version is a version with a special form that allows us to +// address an untagged commit and order that version with respect to +// other versions we might encounter. +// +// A pseudo-version takes one of the general forms: +// +// (1) vX.0.0-yyyymmddhhmmss-abcdef123456 +// (2) vX.Y.(Z+1)-0.yyyymmddhhmmss-abcdef123456 +// (3) vX.Y.(Z+1)-0.yyyymmddhhmmss-abcdef123456+incompatible +// (4) vX.Y.Z-pre.0.yyyymmddhhmmss-abcdef123456 +// (5) vX.Y.Z-pre.0.yyyymmddhhmmss-abcdef123456+incompatible +// +// If there is no recently tagged version with the right major version vX, +// then form (1) is used, creating a space of pseudo-versions at the bottom +// of the vX version range, less than any tagged version, including the unlikely v0.0.0. +// +// If the most recent tagged version before the target commit is vX.Y.Z or vX.Y.Z+incompatible, +// then the pseudo-version uses form (2) or (3), making it a prerelease for the next +// possible semantic version after vX.Y.Z. The leading 0 segment in the prerelease string +// ensures that the pseudo-version compares less than possible future explicit prereleases +// like vX.Y.(Z+1)-rc1 or vX.Y.(Z+1)-1. +// +// If the most recent tagged version before the target commit is vX.Y.Z-pre or vX.Y.Z-pre+incompatible, +// then the pseudo-version uses form (4) or (5), making it a slightly later prerelease. + +package module + +import ( + "errors" + "fmt" + "strings" + "time" + + "golang.org/x/mod/internal/lazyregexp" + "golang.org/x/mod/semver" +) + +var pseudoVersionRE = lazyregexp.New(`^v[0-9]+\.(0\.0-|\d+\.\d+-([^+]*\.)?0\.)\d{14}-[A-Za-z0-9]+(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$`) + +const PseudoVersionTimestampFormat = "20060102150405" + +// PseudoVersion returns a pseudo-version for the given major version ("v1") +// preexisting older tagged version ("" or "v1.2.3" or "v1.2.3-pre"), revision time, +// and revision identifier (usually a 12-byte commit hash prefix). +func PseudoVersion(major, older string, t time.Time, rev string) string { + if major == "" { + major = "v0" + } + segment := fmt.Sprintf("%s-%s", t.UTC().Format(PseudoVersionTimestampFormat), rev) + build := semver.Build(older) + older = semver.Canonical(older) + if older == "" { + return major + ".0.0-" + segment // form (1) + } + if semver.Prerelease(older) != "" { + return older + ".0." + segment + build // form (4), (5) + } + + // Form (2), (3). + // Extract patch from vMAJOR.MINOR.PATCH + i := strings.LastIndex(older, ".") + 1 + v, patch := older[:i], older[i:] + + // Reassemble. + return v + incDecimal(patch) + "-0." + segment + build +} + +// ZeroPseudoVersion returns a pseudo-version with a zero timestamp and +// revision, which may be used as a placeholder. +func ZeroPseudoVersion(major string) string { + return PseudoVersion(major, "", time.Time{}, "000000000000") +} + +// incDecimal returns the decimal string incremented by 1. +func incDecimal(decimal string) string { + // Scan right to left turning 9s to 0s until you find a digit to increment. + digits := []byte(decimal) + i := len(digits) - 1 + for ; i >= 0 && digits[i] == '9'; i-- { + digits[i] = '0' + } + if i >= 0 { + digits[i]++ + } else { + // digits is all zeros + digits[0] = '1' + digits = append(digits, '0') + } + return string(digits) +} + +// decDecimal returns the decimal string decremented by 1, or the empty string +// if the decimal is all zeroes. +func decDecimal(decimal string) string { + // Scan right to left turning 0s to 9s until you find a digit to decrement. + digits := []byte(decimal) + i := len(digits) - 1 + for ; i >= 0 && digits[i] == '0'; i-- { + digits[i] = '9' + } + if i < 0 { + // decimal is all zeros + return "" + } + if i == 0 && digits[i] == '1' && len(digits) > 1 { + digits = digits[1:] + } else { + digits[i]-- + } + return string(digits) +} + +// IsPseudoVersion reports whether v is a pseudo-version. +func IsPseudoVersion(v string) bool { + return strings.Count(v, "-") >= 2 && semver.IsValid(v) && pseudoVersionRE.MatchString(v) +} + +// IsZeroPseudoVersion returns whether v is a pseudo-version with a zero base, +// timestamp, and revision, as returned by ZeroPseudoVersion. +func IsZeroPseudoVersion(v string) bool { + return v == ZeroPseudoVersion(semver.Major(v)) +} + +// PseudoVersionTime returns the time stamp of the pseudo-version v. +// It returns an error if v is not a pseudo-version or if the time stamp +// embedded in the pseudo-version is not a valid time. +func PseudoVersionTime(v string) (time.Time, error) { + _, timestamp, _, _, err := parsePseudoVersion(v) + if err != nil { + return time.Time{}, err + } + t, err := time.Parse("20060102150405", timestamp) + if err != nil { + return time.Time{}, &InvalidVersionError{ + Version: v, + Pseudo: true, + Err: fmt.Errorf("malformed time %q", timestamp), + } + } + return t, nil +} + +// PseudoVersionRev returns the revision identifier of the pseudo-version v. +// It returns an error if v is not a pseudo-version. +func PseudoVersionRev(v string) (rev string, err error) { + _, _, rev, _, err = parsePseudoVersion(v) + return +} + +// PseudoVersionBase returns the canonical parent version, if any, upon which +// the pseudo-version v is based. +// +// If v has no parent version (that is, if it is "vX.0.0-[…]"), +// PseudoVersionBase returns the empty string and a nil error. +func PseudoVersionBase(v string) (string, error) { + base, _, _, build, err := parsePseudoVersion(v) + if err != nil { + return "", err + } + + switch pre := semver.Prerelease(base); pre { + case "": + // vX.0.0-yyyymmddhhmmss-abcdef123456 → "" + if build != "" { + // Pseudo-versions of the form vX.0.0-yyyymmddhhmmss-abcdef123456+incompatible + // are nonsensical: the "vX.0.0-" prefix implies that there is no parent tag, + // but the "+incompatible" suffix implies that the major version of + // the parent tag is not compatible with the module's import path. + // + // There are a few such entries in the index generated by proxy.golang.org, + // but we believe those entries were generated by the proxy itself. + return "", &InvalidVersionError{ + Version: v, + Pseudo: true, + Err: fmt.Errorf("lacks base version, but has build metadata %q", build), + } + } + return "", nil + + case "-0": + // vX.Y.(Z+1)-0.yyyymmddhhmmss-abcdef123456 → vX.Y.Z + // vX.Y.(Z+1)-0.yyyymmddhhmmss-abcdef123456+incompatible → vX.Y.Z+incompatible + base = strings.TrimSuffix(base, pre) + i := strings.LastIndexByte(base, '.') + if i < 0 { + panic("base from parsePseudoVersion missing patch number: " + base) + } + patch := decDecimal(base[i+1:]) + if patch == "" { + // vX.0.0-0 is invalid, but has been observed in the wild in the index + // generated by requests to proxy.golang.org. + // + // NOTE(bcmills): I cannot find a historical bug that accounts for + // pseudo-versions of this form, nor have I seen such versions in any + // actual go.mod files. If we find actual examples of this form and a + // reasonable theory of how they came into existence, it seems fine to + // treat them as equivalent to vX.0.0 (especially since the invalid + // pseudo-versions have lower precedence than the real ones). For now, we + // reject them. + return "", &InvalidVersionError{ + Version: v, + Pseudo: true, + Err: fmt.Errorf("version before %s would have negative patch number", base), + } + } + return base[:i+1] + patch + build, nil + + default: + // vX.Y.Z-pre.0.yyyymmddhhmmss-abcdef123456 → vX.Y.Z-pre + // vX.Y.Z-pre.0.yyyymmddhhmmss-abcdef123456+incompatible → vX.Y.Z-pre+incompatible + if !strings.HasSuffix(base, ".0") { + panic(`base from parsePseudoVersion missing ".0" before date: ` + base) + } + return strings.TrimSuffix(base, ".0") + build, nil + } +} + +var errPseudoSyntax = errors.New("syntax error") + +func parsePseudoVersion(v string) (base, timestamp, rev, build string, err error) { + if !IsPseudoVersion(v) { + return "", "", "", "", &InvalidVersionError{ + Version: v, + Pseudo: true, + Err: errPseudoSyntax, + } + } + build = semver.Build(v) + v = strings.TrimSuffix(v, build) + j := strings.LastIndex(v, "-") + v, rev = v[:j], v[j+1:] + i := strings.LastIndex(v, "-") + if j := strings.LastIndex(v, "."); j > i { + base = v[:j] // "vX.Y.Z-pre.0" or "vX.Y.(Z+1)-0" + timestamp = v[j+1:] + } else { + base = v[:i] // "vX.0.0" + timestamp = v[i+1:] + } + return base, timestamp, rev, build, nil +} diff --git a/vendor/golang.org/x/mod/semver/semver.go b/vendor/golang.org/x/mod/semver/semver.go index 4338f3517..a30a22bf2 100644 --- a/vendor/golang.org/x/mod/semver/semver.go +++ b/vendor/golang.org/x/mod/semver/semver.go @@ -22,6 +22,8 @@ // as shorthands for vMAJOR.0.0 and vMAJOR.MINOR.0. package semver +import "sort" + // parsed returns the parsed form of a semantic version string. type parsed struct { major string @@ -30,7 +32,6 @@ type parsed struct { short string prerelease string build string - err string } // IsValid reports whether v is a valid semantic version string. @@ -150,14 +151,30 @@ func Max(v, w string) string { return w } +// ByVersion implements sort.Interface for sorting semantic version strings. +type ByVersion []string + +func (vs ByVersion) Len() int { return len(vs) } +func (vs ByVersion) Swap(i, j int) { vs[i], vs[j] = vs[j], vs[i] } +func (vs ByVersion) Less(i, j int) bool { + cmp := Compare(vs[i], vs[j]) + if cmp != 0 { + return cmp < 0 + } + return vs[i] < vs[j] +} + +// Sort sorts a list of semantic version strings using ByVersion. +func Sort(list []string) { + sort.Sort(ByVersion(list)) +} + func parse(v string) (p parsed, ok bool) { if v == "" || v[0] != 'v' { - p.err = "missing v prefix" return } p.major, v, ok = parseInt(v[1:]) if !ok { - p.err = "bad major version" return } if v == "" { @@ -167,13 +184,11 @@ func parse(v string) (p parsed, ok bool) { return } if v[0] != '.' { - p.err = "bad minor prefix" ok = false return } p.minor, v, ok = parseInt(v[1:]) if !ok { - p.err = "bad minor version" return } if v == "" { @@ -182,31 +197,26 @@ func parse(v string) (p parsed, ok bool) { return } if v[0] != '.' { - p.err = "bad patch prefix" ok = false return } p.patch, v, ok = parseInt(v[1:]) if !ok { - p.err = "bad patch version" return } if len(v) > 0 && v[0] == '-' { p.prerelease, v, ok = parsePrerelease(v) if !ok { - p.err = "bad prerelease" return } } if len(v) > 0 && v[0] == '+' { p.build, v, ok = parseBuild(v) if !ok { - p.err = "bad build" return } } if v != "" { - p.err = "junk on end" ok = false return } diff --git a/vendor/golang.org/x/net/AUTHORS b/vendor/golang.org/x/net/AUTHORS deleted file mode 100644 index 15167cd74..000000000 --- a/vendor/golang.org/x/net/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code refers to The Go Authors for copyright purposes. -# The master list of authors is in the main Go distribution, -# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/golang.org/x/net/CONTRIBUTORS b/vendor/golang.org/x/net/CONTRIBUTORS deleted file mode 100644 index 1c4577e96..000000000 --- a/vendor/golang.org/x/net/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code was written by the Go contributors. -# The master list of contributors is in the main Go distribution, -# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/golang.org/x/net/context/go17.go b/vendor/golang.org/x/net/context/go17.go index 0a54bdbcc..2cb9c408f 100644 --- a/vendor/golang.org/x/net/context/go17.go +++ b/vendor/golang.org/x/net/context/go17.go @@ -32,7 +32,7 @@ var DeadlineExceeded = context.DeadlineExceeded // call cancel as soon as the operations running in this Context complete. func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { ctx, f := context.WithCancel(parent) - return ctx, CancelFunc(f) + return ctx, f } // WithDeadline returns a copy of the parent context with the deadline adjusted @@ -46,7 +46,7 @@ func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { // call cancel as soon as the operations running in this Context complete. func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) { ctx, f := context.WithDeadline(parent, deadline) - return ctx, CancelFunc(f) + return ctx, f } // WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)). diff --git a/vendor/golang.org/x/net/http2/flow.go b/vendor/golang.org/x/net/http2/flow.go index b51f0e0cf..b7dbd1869 100644 --- a/vendor/golang.org/x/net/http2/flow.go +++ b/vendor/golang.org/x/net/http2/flow.go @@ -6,23 +6,91 @@ package http2 -// flow is the flow control window's size. -type flow struct { +// inflowMinRefresh is the minimum number of bytes we'll send for a +// flow control window update. +const inflowMinRefresh = 4 << 10 + +// inflow accounts for an inbound flow control window. +// It tracks both the latest window sent to the peer (used for enforcement) +// and the accumulated unsent window. +type inflow struct { + avail int32 + unsent int32 +} + +// init sets the initial window. +func (f *inflow) init(n int32) { + f.avail = n +} + +// add adds n bytes to the window, with a maximum window size of max, +// indicating that the peer can now send us more data. +// For example, the user read from a {Request,Response} body and consumed +// some of the buffered data, so the peer can now send more. +// It returns the number of bytes to send in a WINDOW_UPDATE frame to the peer. +// Window updates are accumulated and sent when the unsent capacity +// is at least inflowMinRefresh or will at least double the peer's available window. +func (f *inflow) add(n int) (connAdd int32) { + if n < 0 { + panic("negative update") + } + unsent := int64(f.unsent) + int64(n) + // "A sender MUST NOT allow a flow-control window to exceed 2^31-1 octets." + // RFC 7540 Section 6.9.1. + const maxWindow = 1<<31 - 1 + if unsent+int64(f.avail) > maxWindow { + panic("flow control update exceeds maximum window size") + } + f.unsent = int32(unsent) + if f.unsent < inflowMinRefresh && f.unsent < f.avail { + // If there aren't at least inflowMinRefresh bytes of window to send, + // and this update won't at least double the window, buffer the update for later. + return 0 + } + f.avail += f.unsent + f.unsent = 0 + return int32(unsent) +} + +// take attempts to take n bytes from the peer's flow control window. +// It reports whether the window has available capacity. +func (f *inflow) take(n uint32) bool { + if n > uint32(f.avail) { + return false + } + f.avail -= int32(n) + return true +} + +// takeInflows attempts to take n bytes from two inflows, +// typically connection-level and stream-level flows. +// It reports whether both windows have available capacity. +func takeInflows(f1, f2 *inflow, n uint32) bool { + if n > uint32(f1.avail) || n > uint32(f2.avail) { + return false + } + f1.avail -= int32(n) + f2.avail -= int32(n) + return true +} + +// outflow is the outbound flow control window's size. +type outflow struct { _ incomparable // n is the number of DATA bytes we're allowed to send. - // A flow is kept both on a conn and a per-stream. + // An outflow is kept both on a conn and a per-stream. n int32 - // conn points to the shared connection-level flow that is - // shared by all streams on that conn. It is nil for the flow + // conn points to the shared connection-level outflow that is + // shared by all streams on that conn. It is nil for the outflow // that's on the conn directly. - conn *flow + conn *outflow } -func (f *flow) setConnFlow(cf *flow) { f.conn = cf } +func (f *outflow) setConnFlow(cf *outflow) { f.conn = cf } -func (f *flow) available() int32 { +func (f *outflow) available() int32 { n := f.n if f.conn != nil && f.conn.n < n { n = f.conn.n @@ -30,7 +98,7 @@ func (f *flow) available() int32 { return n } -func (f *flow) take(n int32) { +func (f *outflow) take(n int32) { if n > f.available() { panic("internal error: took too much") } @@ -42,7 +110,7 @@ func (f *flow) take(n int32) { // add adds n bytes (positive or negative) to the flow control window. // It returns false if the sum would exceed 2^31-1. -func (f *flow) add(n int32) bool { +func (f *outflow) add(n int32) bool { sum := f.n + n if (sum > n) == (f.n > 0) { f.n = sum diff --git a/vendor/golang.org/x/net/http2/frame.go b/vendor/golang.org/x/net/http2/frame.go index 0178647ee..c1f6b90dc 100644 --- a/vendor/golang.org/x/net/http2/frame.go +++ b/vendor/golang.org/x/net/http2/frame.go @@ -23,7 +23,7 @@ const frameHeaderLen = 9 var padZeros = make([]byte, 255) // zeros for padding // A FrameType is a registered frame type as defined in -// http://http2.github.io/http2-spec/#rfc.section.11.2 +// https://httpwg.org/specs/rfc7540.html#rfc.section.11.2 type FrameType uint8 const ( @@ -146,7 +146,7 @@ func typeFrameParser(t FrameType) frameParser { // A FrameHeader is the 9 byte header of all HTTP/2 frames. // -// See http://http2.github.io/http2-spec/#FrameHeader +// See https://httpwg.org/specs/rfc7540.html#FrameHeader type FrameHeader struct { valid bool // caller can access []byte fields in the Frame @@ -575,7 +575,7 @@ func (fr *Framer) checkFrameOrder(f Frame) error { // A DataFrame conveys arbitrary, variable-length sequences of octets // associated with a stream. -// See http://http2.github.io/http2-spec/#rfc.section.6.1 +// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.1 type DataFrame struct { FrameHeader data []byte @@ -662,6 +662,15 @@ func (f *Framer) WriteData(streamID uint32, endStream bool, data []byte) error { // It is the caller's responsibility not to violate the maximum frame size // and to not call other Write methods concurrently. func (f *Framer) WriteDataPadded(streamID uint32, endStream bool, data, pad []byte) error { + if err := f.startWriteDataPadded(streamID, endStream, data, pad); err != nil { + return err + } + return f.endWrite() +} + +// startWriteDataPadded is WriteDataPadded, but only writes the frame to the Framer's internal buffer. +// The caller should call endWrite to flush the frame to the underlying writer. +func (f *Framer) startWriteDataPadded(streamID uint32, endStream bool, data, pad []byte) error { if !validStreamID(streamID) && !f.AllowIllegalWrites { return errStreamID } @@ -691,14 +700,14 @@ func (f *Framer) WriteDataPadded(streamID uint32, endStream bool, data, pad []by } f.wbuf = append(f.wbuf, data...) f.wbuf = append(f.wbuf, pad...) - return f.endWrite() + return nil } // A SettingsFrame conveys configuration parameters that affect how // endpoints communicate, such as preferences and constraints on peer // behavior. // -// See http://http2.github.io/http2-spec/#SETTINGS +// See https://httpwg.org/specs/rfc7540.html#SETTINGS type SettingsFrame struct { FrameHeader p []byte @@ -837,7 +846,7 @@ func (f *Framer) WriteSettingsAck() error { // A PingFrame is a mechanism for measuring a minimal round trip time // from the sender, as well as determining whether an idle connection // is still functional. -// See http://http2.github.io/http2-spec/#rfc.section.6.7 +// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.7 type PingFrame struct { FrameHeader Data [8]byte @@ -870,7 +879,7 @@ func (f *Framer) WritePing(ack bool, data [8]byte) error { } // A GoAwayFrame informs the remote peer to stop creating streams on this connection. -// See http://http2.github.io/http2-spec/#rfc.section.6.8 +// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.8 type GoAwayFrame struct { FrameHeader LastStreamID uint32 @@ -934,7 +943,7 @@ func parseUnknownFrame(_ *frameCache, fh FrameHeader, countError func(string), p } // A WindowUpdateFrame is used to implement flow control. -// See http://http2.github.io/http2-spec/#rfc.section.6.9 +// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.9 type WindowUpdateFrame struct { FrameHeader Increment uint32 // never read with high bit set @@ -1123,7 +1132,7 @@ func (f *Framer) WriteHeaders(p HeadersFrameParam) error { } // A PriorityFrame specifies the sender-advised priority of a stream. -// See http://http2.github.io/http2-spec/#rfc.section.6.3 +// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.3 type PriorityFrame struct { FrameHeader PriorityParam @@ -1193,7 +1202,7 @@ func (f *Framer) WritePriority(streamID uint32, p PriorityParam) error { } // A RSTStreamFrame allows for abnormal termination of a stream. -// See http://http2.github.io/http2-spec/#rfc.section.6.4 +// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.4 type RSTStreamFrame struct { FrameHeader ErrCode ErrCode @@ -1225,7 +1234,7 @@ func (f *Framer) WriteRSTStream(streamID uint32, code ErrCode) error { } // A ContinuationFrame is used to continue a sequence of header block fragments. -// See http://http2.github.io/http2-spec/#rfc.section.6.10 +// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.10 type ContinuationFrame struct { FrameHeader headerFragBuf []byte @@ -1266,7 +1275,7 @@ func (f *Framer) WriteContinuation(streamID uint32, endHeaders bool, headerBlock } // A PushPromiseFrame is used to initiate a server stream. -// See http://http2.github.io/http2-spec/#rfc.section.6.6 +// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.6 type PushPromiseFrame struct { FrameHeader PromiseID uint32 diff --git a/vendor/golang.org/x/net/http2/headermap.go b/vendor/golang.org/x/net/http2/headermap.go index 9e12941da..149b3dd20 100644 --- a/vendor/golang.org/x/net/http2/headermap.go +++ b/vendor/golang.org/x/net/http2/headermap.go @@ -27,7 +27,14 @@ func buildCommonHeaderMaps() { "accept-language", "accept-ranges", "age", + "access-control-allow-credentials", + "access-control-allow-headers", + "access-control-allow-methods", "access-control-allow-origin", + "access-control-expose-headers", + "access-control-max-age", + "access-control-request-headers", + "access-control-request-method", "allow", "authorization", "cache-control", @@ -53,6 +60,7 @@ func buildCommonHeaderMaps() { "link", "location", "max-forwards", + "origin", "proxy-authenticate", "proxy-authorization", "range", @@ -68,6 +76,8 @@ func buildCommonHeaderMaps() { "vary", "via", "www-authenticate", + "x-forwarded-for", + "x-forwarded-proto", } commonLowerHeader = make(map[string]string, len(common)) commonCanonHeader = make(map[string]string, len(common)) @@ -85,3 +95,11 @@ func lowerHeader(v string) (lower string, ascii bool) { } return asciiToLower(v) } + +func canonicalHeader(v string) string { + buildCommonHeaderMapsOnce() + if s, ok := commonCanonHeader[v]; ok { + return s + } + return http.CanonicalHeaderKey(v) +} diff --git a/vendor/golang.org/x/net/http2/hpack/encode.go b/vendor/golang.org/x/net/http2/hpack/encode.go index 97f17831f..46219da2b 100644 --- a/vendor/golang.org/x/net/http2/hpack/encode.go +++ b/vendor/golang.org/x/net/http2/hpack/encode.go @@ -116,6 +116,11 @@ func (e *Encoder) SetMaxDynamicTableSize(v uint32) { e.dynTab.setMaxSize(v) } +// MaxDynamicTableSize returns the current dynamic header table size. +func (e *Encoder) MaxDynamicTableSize() (v uint32) { + return e.dynTab.maxSize +} + // SetMaxDynamicTableSizeLimit changes the maximum value that can be // specified in SetMaxDynamicTableSize to v. By default, it is set to // 4096, which is the same size of the default dynamic header table @@ -191,7 +196,7 @@ func appendTableSize(dst []byte, v uint32) []byte { // bit prefix, to dst and returns the extended buffer. // // See -// http://http2.github.io/http2-spec/compression.html#integer.representation +// https://httpwg.org/specs/rfc7541.html#integer.representation func appendVarInt(dst []byte, n byte, i uint64) []byte { k := uint64((1 << n) - 1) if i < k { diff --git a/vendor/golang.org/x/net/http2/hpack/hpack.go b/vendor/golang.org/x/net/http2/hpack/hpack.go index 85f18a2b0..7a1d97669 100644 --- a/vendor/golang.org/x/net/http2/hpack/hpack.go +++ b/vendor/golang.org/x/net/http2/hpack/hpack.go @@ -59,7 +59,7 @@ func (hf HeaderField) String() string { // Size returns the size of an entry per RFC 7541 section 4.1. func (hf HeaderField) Size() uint32 { - // http://http2.github.io/http2-spec/compression.html#rfc.section.4.1 + // https://httpwg.org/specs/rfc7541.html#rfc.section.4.1 // "The size of the dynamic table is the sum of the size of // its entries. The size of an entry is the sum of its name's // length in octets (as defined in Section 5.2), its value's @@ -158,7 +158,7 @@ func (d *Decoder) SetAllowedMaxDynamicTableSize(v uint32) { } type dynamicTable struct { - // http://http2.github.io/http2-spec/compression.html#rfc.section.2.3.2 + // https://httpwg.org/specs/rfc7541.html#rfc.section.2.3.2 table headerFieldTable size uint32 // in bytes maxSize uint32 // current maxSize @@ -211,7 +211,7 @@ func (d *Decoder) at(i uint64) (hf HeaderField, ok bool) { return dt.ents[dt.len()-(int(i)-staticTable.len())], true } -// Decode decodes an entire block. +// DecodeFull decodes an entire block. // // TODO: remove this method and make it incremental later? This is // easier for debugging now. @@ -307,27 +307,27 @@ func (d *Decoder) parseHeaderFieldRepr() error { case b&128 != 0: // Indexed representation. // High bit set? - // http://http2.github.io/http2-spec/compression.html#rfc.section.6.1 + // https://httpwg.org/specs/rfc7541.html#rfc.section.6.1 return d.parseFieldIndexed() case b&192 == 64: // 6.2.1 Literal Header Field with Incremental Indexing // 0b10xxxxxx: top two bits are 10 - // http://http2.github.io/http2-spec/compression.html#rfc.section.6.2.1 + // https://httpwg.org/specs/rfc7541.html#rfc.section.6.2.1 return d.parseFieldLiteral(6, indexedTrue) case b&240 == 0: // 6.2.2 Literal Header Field without Indexing // 0b0000xxxx: top four bits are 0000 - // http://http2.github.io/http2-spec/compression.html#rfc.section.6.2.2 + // https://httpwg.org/specs/rfc7541.html#rfc.section.6.2.2 return d.parseFieldLiteral(4, indexedFalse) case b&240 == 16: // 6.2.3 Literal Header Field never Indexed // 0b0001xxxx: top four bits are 0001 - // http://http2.github.io/http2-spec/compression.html#rfc.section.6.2.3 + // https://httpwg.org/specs/rfc7541.html#rfc.section.6.2.3 return d.parseFieldLiteral(4, indexedNever) case b&224 == 32: // 6.3 Dynamic Table Size Update // Top three bits are '001'. - // http://http2.github.io/http2-spec/compression.html#rfc.section.6.3 + // https://httpwg.org/specs/rfc7541.html#rfc.section.6.3 return d.parseDynamicTableSizeUpdate() } @@ -359,6 +359,7 @@ func (d *Decoder) parseFieldLiteral(n uint8, it indexType) error { var hf HeaderField wantStr := d.emitEnabled || it.indexed() + var undecodedName undecodedString if nameIdx > 0 { ihf, ok := d.at(nameIdx) if !ok { @@ -366,15 +367,27 @@ func (d *Decoder) parseFieldLiteral(n uint8, it indexType) error { } hf.Name = ihf.Name } else { - hf.Name, buf, err = d.readString(buf, wantStr) + undecodedName, buf, err = d.readString(buf) if err != nil { return err } } - hf.Value, buf, err = d.readString(buf, wantStr) + undecodedValue, buf, err := d.readString(buf) if err != nil { return err } + if wantStr { + if nameIdx <= 0 { + hf.Name, err = d.decodeString(undecodedName) + if err != nil { + return err + } + } + hf.Value, err = d.decodeString(undecodedValue) + if err != nil { + return err + } + } d.buf = buf if it.indexed() { d.dynTab.add(hf) @@ -420,7 +433,7 @@ var errVarintOverflow = DecodingError{errors.New("varint integer overflow")} // readVarInt reads an unsigned variable length integer off the // beginning of p. n is the parameter as described in -// http://http2.github.io/http2-spec/compression.html#rfc.section.5.1. +// https://httpwg.org/specs/rfc7541.html#rfc.section.5.1. // // n must always be between 1 and 8. // @@ -459,46 +472,52 @@ func readVarInt(n byte, p []byte) (i uint64, remain []byte, err error) { return 0, origP, errNeedMore } -// readString decodes an hpack string from p. +// readString reads an hpack string from p. // -// wantStr is whether s will be used. If false, decompression and -// []byte->string garbage are skipped if s will be ignored -// anyway. This does mean that huffman decoding errors for non-indexed -// strings past the MAX_HEADER_LIST_SIZE are ignored, but the server -// is returning an error anyway, and because they're not indexed, the error -// won't affect the decoding state. -func (d *Decoder) readString(p []byte, wantStr bool) (s string, remain []byte, err error) { +// It returns a reference to the encoded string data to permit deferring decode costs +// until after the caller verifies all data is present. +func (d *Decoder) readString(p []byte) (u undecodedString, remain []byte, err error) { if len(p) == 0 { - return "", p, errNeedMore + return u, p, errNeedMore } isHuff := p[0]&128 != 0 strLen, p, err := readVarInt(7, p) if err != nil { - return "", p, err + return u, p, err } if d.maxStrLen != 0 && strLen > uint64(d.maxStrLen) { - return "", nil, ErrStringLength + // Returning an error here means Huffman decoding errors + // for non-indexed strings past the maximum string length + // are ignored, but the server is returning an error anyway + // and because the string is not indexed the error will not + // affect the decoding state. + return u, nil, ErrStringLength } if uint64(len(p)) < strLen { - return "", p, errNeedMore - } - if !isHuff { - if wantStr { - s = string(p[:strLen]) - } - return s, p[strLen:], nil + return u, p, errNeedMore } + u.isHuff = isHuff + u.b = p[:strLen] + return u, p[strLen:], nil +} - if wantStr { - buf := bufPool.Get().(*bytes.Buffer) - buf.Reset() // don't trust others - defer bufPool.Put(buf) - if err := huffmanDecode(buf, d.maxStrLen, p[:strLen]); err != nil { - buf.Reset() - return "", nil, err - } +type undecodedString struct { + isHuff bool + b []byte +} + +func (d *Decoder) decodeString(u undecodedString) (string, error) { + if !u.isHuff { + return string(u.b), nil + } + buf := bufPool.Get().(*bytes.Buffer) + buf.Reset() // don't trust others + var s string + err := huffmanDecode(buf, d.maxStrLen, u.b) + if err == nil { s = buf.String() - buf.Reset() // be nice to GC } - return s, p[strLen:], nil + buf.Reset() // be nice to GC + bufPool.Put(buf) + return s, err } diff --git a/vendor/golang.org/x/net/http2/hpack/static_table.go b/vendor/golang.org/x/net/http2/hpack/static_table.go new file mode 100644 index 000000000..754a1eb91 --- /dev/null +++ b/vendor/golang.org/x/net/http2/hpack/static_table.go @@ -0,0 +1,188 @@ +// go generate gen.go +// Code generated by the command above; DO NOT EDIT. + +package hpack + +var staticTable = &headerFieldTable{ + evictCount: 0, + byName: map[string]uint64{ + ":authority": 1, + ":method": 3, + ":path": 5, + ":scheme": 7, + ":status": 14, + "accept-charset": 15, + "accept-encoding": 16, + "accept-language": 17, + "accept-ranges": 18, + "accept": 19, + "access-control-allow-origin": 20, + "age": 21, + "allow": 22, + "authorization": 23, + "cache-control": 24, + "content-disposition": 25, + "content-encoding": 26, + "content-language": 27, + "content-length": 28, + "content-location": 29, + "content-range": 30, + "content-type": 31, + "cookie": 32, + "date": 33, + "etag": 34, + "expect": 35, + "expires": 36, + "from": 37, + "host": 38, + "if-match": 39, + "if-modified-since": 40, + "if-none-match": 41, + "if-range": 42, + "if-unmodified-since": 43, + "last-modified": 44, + "link": 45, + "location": 46, + "max-forwards": 47, + "proxy-authenticate": 48, + "proxy-authorization": 49, + "range": 50, + "referer": 51, + "refresh": 52, + "retry-after": 53, + "server": 54, + "set-cookie": 55, + "strict-transport-security": 56, + "transfer-encoding": 57, + "user-agent": 58, + "vary": 59, + "via": 60, + "www-authenticate": 61, + }, + byNameValue: map[pairNameValue]uint64{ + {name: ":authority", value: ""}: 1, + {name: ":method", value: "GET"}: 2, + {name: ":method", value: "POST"}: 3, + {name: ":path", value: "/"}: 4, + {name: ":path", value: "/index.html"}: 5, + {name: ":scheme", value: "http"}: 6, + {name: ":scheme", value: "https"}: 7, + {name: ":status", value: "200"}: 8, + {name: ":status", value: "204"}: 9, + {name: ":status", value: "206"}: 10, + {name: ":status", value: "304"}: 11, + {name: ":status", value: "400"}: 12, + {name: ":status", value: "404"}: 13, + {name: ":status", value: "500"}: 14, + {name: "accept-charset", value: ""}: 15, + {name: "accept-encoding", value: "gzip, deflate"}: 16, + {name: "accept-language", value: ""}: 17, + {name: "accept-ranges", value: ""}: 18, + {name: "accept", value: ""}: 19, + {name: "access-control-allow-origin", value: ""}: 20, + {name: "age", value: ""}: 21, + {name: "allow", value: ""}: 22, + {name: "authorization", value: ""}: 23, + {name: "cache-control", value: ""}: 24, + {name: "content-disposition", value: ""}: 25, + {name: "content-encoding", value: ""}: 26, + {name: "content-language", value: ""}: 27, + {name: "content-length", value: ""}: 28, + {name: "content-location", value: ""}: 29, + {name: "content-range", value: ""}: 30, + {name: "content-type", value: ""}: 31, + {name: "cookie", value: ""}: 32, + {name: "date", value: ""}: 33, + {name: "etag", value: ""}: 34, + {name: "expect", value: ""}: 35, + {name: "expires", value: ""}: 36, + {name: "from", value: ""}: 37, + {name: "host", value: ""}: 38, + {name: "if-match", value: ""}: 39, + {name: "if-modified-since", value: ""}: 40, + {name: "if-none-match", value: ""}: 41, + {name: "if-range", value: ""}: 42, + {name: "if-unmodified-since", value: ""}: 43, + {name: "last-modified", value: ""}: 44, + {name: "link", value: ""}: 45, + {name: "location", value: ""}: 46, + {name: "max-forwards", value: ""}: 47, + {name: "proxy-authenticate", value: ""}: 48, + {name: "proxy-authorization", value: ""}: 49, + {name: "range", value: ""}: 50, + {name: "referer", value: ""}: 51, + {name: "refresh", value: ""}: 52, + {name: "retry-after", value: ""}: 53, + {name: "server", value: ""}: 54, + {name: "set-cookie", value: ""}: 55, + {name: "strict-transport-security", value: ""}: 56, + {name: "transfer-encoding", value: ""}: 57, + {name: "user-agent", value: ""}: 58, + {name: "vary", value: ""}: 59, + {name: "via", value: ""}: 60, + {name: "www-authenticate", value: ""}: 61, + }, + ents: []HeaderField{ + {Name: ":authority", Value: "", Sensitive: false}, + {Name: ":method", Value: "GET", Sensitive: false}, + {Name: ":method", Value: "POST", Sensitive: false}, + {Name: ":path", Value: "/", Sensitive: false}, + {Name: ":path", Value: "/index.html", Sensitive: false}, + {Name: ":scheme", Value: "http", Sensitive: false}, + {Name: ":scheme", Value: "https", Sensitive: false}, + {Name: ":status", Value: "200", Sensitive: false}, + {Name: ":status", Value: "204", Sensitive: false}, + {Name: ":status", Value: "206", Sensitive: false}, + {Name: ":status", Value: "304", Sensitive: false}, + {Name: ":status", Value: "400", Sensitive: false}, + {Name: ":status", Value: "404", Sensitive: false}, + {Name: ":status", Value: "500", Sensitive: false}, + {Name: "accept-charset", Value: "", Sensitive: false}, + {Name: "accept-encoding", Value: "gzip, deflate", Sensitive: false}, + {Name: "accept-language", Value: "", Sensitive: false}, + {Name: "accept-ranges", Value: "", Sensitive: false}, + {Name: "accept", Value: "", Sensitive: false}, + {Name: "access-control-allow-origin", Value: "", Sensitive: false}, + {Name: "age", Value: "", Sensitive: false}, + {Name: "allow", Value: "", Sensitive: false}, + {Name: "authorization", Value: "", Sensitive: false}, + {Name: "cache-control", Value: "", Sensitive: false}, + {Name: "content-disposition", Value: "", Sensitive: false}, + {Name: "content-encoding", Value: "", Sensitive: false}, + {Name: "content-language", Value: "", Sensitive: false}, + {Name: "content-length", Value: "", Sensitive: false}, + {Name: "content-location", Value: "", Sensitive: false}, + {Name: "content-range", Value: "", Sensitive: false}, + {Name: "content-type", Value: "", Sensitive: false}, + {Name: "cookie", Value: "", Sensitive: false}, + {Name: "date", Value: "", Sensitive: false}, + {Name: "etag", Value: "", Sensitive: false}, + {Name: "expect", Value: "", Sensitive: false}, + {Name: "expires", Value: "", Sensitive: false}, + {Name: "from", Value: "", Sensitive: false}, + {Name: "host", Value: "", Sensitive: false}, + {Name: "if-match", Value: "", Sensitive: false}, + {Name: "if-modified-since", Value: "", Sensitive: false}, + {Name: "if-none-match", Value: "", Sensitive: false}, + {Name: "if-range", Value: "", Sensitive: false}, + {Name: "if-unmodified-since", Value: "", Sensitive: false}, + {Name: "last-modified", Value: "", Sensitive: false}, + {Name: "link", Value: "", Sensitive: false}, + {Name: "location", Value: "", Sensitive: false}, + {Name: "max-forwards", Value: "", Sensitive: false}, + {Name: "proxy-authenticate", Value: "", Sensitive: false}, + {Name: "proxy-authorization", Value: "", Sensitive: false}, + {Name: "range", Value: "", Sensitive: false}, + {Name: "referer", Value: "", Sensitive: false}, + {Name: "refresh", Value: "", Sensitive: false}, + {Name: "retry-after", Value: "", Sensitive: false}, + {Name: "server", Value: "", Sensitive: false}, + {Name: "set-cookie", Value: "", Sensitive: false}, + {Name: "strict-transport-security", Value: "", Sensitive: false}, + {Name: "transfer-encoding", Value: "", Sensitive: false}, + {Name: "user-agent", Value: "", Sensitive: false}, + {Name: "vary", Value: "", Sensitive: false}, + {Name: "via", Value: "", Sensitive: false}, + {Name: "www-authenticate", Value: "", Sensitive: false}, + }, +} diff --git a/vendor/golang.org/x/net/http2/hpack/tables.go b/vendor/golang.org/x/net/http2/hpack/tables.go index a66cfbea6..8cbdf3f01 100644 --- a/vendor/golang.org/x/net/http2/hpack/tables.go +++ b/vendor/golang.org/x/net/http2/hpack/tables.go @@ -96,8 +96,7 @@ func (t *headerFieldTable) evictOldest(n int) { // meaning t.ents is reversed for dynamic tables. Hence, when t is a dynamic // table, the return value i actually refers to the entry t.ents[t.len()-i]. // -// All tables are assumed to be a dynamic tables except for the global -// staticTable pointer. +// All tables are assumed to be a dynamic tables except for the global staticTable. // // See Section 2.3.3. func (t *headerFieldTable) search(f HeaderField) (i uint64, nameValueMatch bool) { @@ -125,81 +124,6 @@ func (t *headerFieldTable) idToIndex(id uint64) uint64 { return k + 1 } -// http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-07#appendix-B -var staticTable = newStaticTable() -var staticTableEntries = [...]HeaderField{ - {Name: ":authority"}, - {Name: ":method", Value: "GET"}, - {Name: ":method", Value: "POST"}, - {Name: ":path", Value: "/"}, - {Name: ":path", Value: "/index.html"}, - {Name: ":scheme", Value: "http"}, - {Name: ":scheme", Value: "https"}, - {Name: ":status", Value: "200"}, - {Name: ":status", Value: "204"}, - {Name: ":status", Value: "206"}, - {Name: ":status", Value: "304"}, - {Name: ":status", Value: "400"}, - {Name: ":status", Value: "404"}, - {Name: ":status", Value: "500"}, - {Name: "accept-charset"}, - {Name: "accept-encoding", Value: "gzip, deflate"}, - {Name: "accept-language"}, - {Name: "accept-ranges"}, - {Name: "accept"}, - {Name: "access-control-allow-origin"}, - {Name: "age"}, - {Name: "allow"}, - {Name: "authorization"}, - {Name: "cache-control"}, - {Name: "content-disposition"}, - {Name: "content-encoding"}, - {Name: "content-language"}, - {Name: "content-length"}, - {Name: "content-location"}, - {Name: "content-range"}, - {Name: "content-type"}, - {Name: "cookie"}, - {Name: "date"}, - {Name: "etag"}, - {Name: "expect"}, - {Name: "expires"}, - {Name: "from"}, - {Name: "host"}, - {Name: "if-match"}, - {Name: "if-modified-since"}, - {Name: "if-none-match"}, - {Name: "if-range"}, - {Name: "if-unmodified-since"}, - {Name: "last-modified"}, - {Name: "link"}, - {Name: "location"}, - {Name: "max-forwards"}, - {Name: "proxy-authenticate"}, - {Name: "proxy-authorization"}, - {Name: "range"}, - {Name: "referer"}, - {Name: "refresh"}, - {Name: "retry-after"}, - {Name: "server"}, - {Name: "set-cookie"}, - {Name: "strict-transport-security"}, - {Name: "transfer-encoding"}, - {Name: "user-agent"}, - {Name: "vary"}, - {Name: "via"}, - {Name: "www-authenticate"}, -} - -func newStaticTable() *headerFieldTable { - t := &headerFieldTable{} - t.init() - for _, e := range staticTableEntries[:] { - t.addEntry(e) - } - return t -} - var huffmanCodes = [256]uint32{ 0x1ff8, 0x7fffd8, diff --git a/vendor/golang.org/x/net/http2/http2.go b/vendor/golang.org/x/net/http2/http2.go index 479ba4b2b..6f2df2818 100644 --- a/vendor/golang.org/x/net/http2/http2.go +++ b/vendor/golang.org/x/net/http2/http2.go @@ -55,14 +55,14 @@ const ( ClientPreface = "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" // SETTINGS_MAX_FRAME_SIZE default - // http://http2.github.io/http2-spec/#rfc.section.6.5.2 + // https://httpwg.org/specs/rfc7540.html#rfc.section.6.5.2 initialMaxFrameSize = 16384 // NextProtoTLS is the NPN/ALPN protocol negotiated during // HTTP/2's TLS setup. NextProtoTLS = "h2" - // http://http2.github.io/http2-spec/#SettingValues + // https://httpwg.org/specs/rfc7540.html#SettingValues initialHeaderTableSize = 4096 initialWindowSize = 65535 // 6.9.2 Initial Flow Control Window Size @@ -111,7 +111,7 @@ func (st streamState) String() string { // Setting is a setting parameter: which setting it is, and its value. type Setting struct { // ID is which setting is being set. - // See http://http2.github.io/http2-spec/#SettingValues + // See https://httpwg.org/specs/rfc7540.html#SettingFormat ID SettingID // Val is the value. @@ -143,7 +143,7 @@ func (s Setting) Valid() error { } // A SettingID is an HTTP/2 setting as defined in -// http://http2.github.io/http2-spec/#iana-settings +// https://httpwg.org/specs/rfc7540.html#iana-settings type SettingID uint16 const ( diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go index 47524a61a..8cb14f3c9 100644 --- a/vendor/golang.org/x/net/http2/server.go +++ b/vendor/golang.org/x/net/http2/server.go @@ -98,6 +98,19 @@ type Server struct { // the HTTP/2 spec's recommendations. MaxConcurrentStreams uint32 + // MaxDecoderHeaderTableSize optionally specifies the http2 + // SETTINGS_HEADER_TABLE_SIZE to send in the initial settings frame. It + // informs the remote endpoint of the maximum size of the header compression + // table used to decode header blocks, in octets. If zero, the default value + // of 4096 is used. + MaxDecoderHeaderTableSize uint32 + + // MaxEncoderHeaderTableSize optionally specifies an upper limit for the + // header compression table used for encoding request headers. Received + // SETTINGS_HEADER_TABLE_SIZE settings are capped at this limit. If zero, + // the default value of 4096 is used. + MaxEncoderHeaderTableSize uint32 + // MaxReadFrameSize optionally specifies the largest frame // this server is willing to read. A valid value is between // 16k and 16M, inclusive. If zero or otherwise invalid, a @@ -143,7 +156,7 @@ type Server struct { } func (s *Server) initialConnRecvWindowSize() int32 { - if s.MaxUploadBufferPerConnection > initialWindowSize { + if s.MaxUploadBufferPerConnection >= initialWindowSize { return s.MaxUploadBufferPerConnection } return 1 << 20 @@ -170,6 +183,20 @@ func (s *Server) maxConcurrentStreams() uint32 { return defaultMaxStreams } +func (s *Server) maxDecoderHeaderTableSize() uint32 { + if v := s.MaxDecoderHeaderTableSize; v > 0 { + return v + } + return initialHeaderTableSize +} + +func (s *Server) maxEncoderHeaderTableSize() uint32 { + if v := s.MaxEncoderHeaderTableSize; v > 0 { + return v + } + return initialHeaderTableSize +} + // maxQueuedControlFrames is the maximum number of control frames like // SETTINGS, PING and RST_STREAM that will be queued for writing before // the connection is closed to prevent memory exhaustion attacks. @@ -394,7 +421,6 @@ func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) { advMaxStreams: s.maxConcurrentStreams(), initialStreamSendWindowSize: initialWindowSize, maxFrameSize: initialMaxFrameSize, - headerTableSize: initialHeaderTableSize, serveG: newGoroutineLock(), pushEnabled: true, sawClientPreface: opts.SawClientPreface, @@ -422,14 +448,15 @@ func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) { // configured value for inflow, that will be updated when we send a // WINDOW_UPDATE shortly after sending SETTINGS. sc.flow.add(initialWindowSize) - sc.inflow.add(initialWindowSize) + sc.inflow.init(initialWindowSize) sc.hpackEncoder = hpack.NewEncoder(&sc.headerWriteBuf) + sc.hpackEncoder.SetMaxDynamicTableSizeLimit(s.maxEncoderHeaderTableSize()) fr := NewFramer(sc.bw, c) if s.CountError != nil { fr.countError = s.CountError } - fr.ReadMetaHeaders = hpack.NewDecoder(initialHeaderTableSize, nil) + fr.ReadMetaHeaders = hpack.NewDecoder(s.maxDecoderHeaderTableSize(), nil) fr.MaxHeaderListSize = sc.maxHeaderListSize() fr.SetMaxReadFrameSize(s.maxReadFrameSize()) sc.framer = fr @@ -536,8 +563,8 @@ type serverConn struct { wroteFrameCh chan frameWriteResult // from writeFrameAsync -> serve, tickles more frame writes bodyReadCh chan bodyReadMsg // from handlers -> serve serveMsgCh chan interface{} // misc messages & code to send to / run on the serve loop - flow flow // conn-wide (not stream-specific) outbound flow control - inflow flow // conn-wide inbound flow control + flow outflow // conn-wide (not stream-specific) outbound flow control + inflow inflow // conn-wide inbound flow control tlsState *tls.ConnectionState // shared by all handlers, like net/http remoteAddrStr string writeSched WriteScheduler @@ -559,9 +586,9 @@ type serverConn struct { streams map[uint32]*stream initialStreamSendWindowSize int32 maxFrameSize int32 - headerTableSize uint32 peerMaxHeaderListSize uint32 // zero means unknown (default) canonHeader map[string]string // http2-lower-case -> Go-Canonical-Case + canonHeaderKeysSize int // canonHeader keys size in bytes writingFrame bool // started writing a frame (on serve goroutine or separate) writingFrameAsync bool // started a frame on its own goroutine but haven't heard back on wroteFrameCh needsFrameFlush bool // last frame write wasn't a flush @@ -614,15 +641,17 @@ type stream struct { cancelCtx func() // owned by serverConn's serve loop: - bodyBytes int64 // body bytes seen so far - declBodyBytes int64 // or -1 if undeclared - flow flow // limits writing from Handler to client - inflow flow // what the client is allowed to POST/etc to us + bodyBytes int64 // body bytes seen so far + declBodyBytes int64 // or -1 if undeclared + flow outflow // limits writing from Handler to client + inflow inflow // what the client is allowed to POST/etc to us state streamState resetQueued bool // RST_STREAM queued for write; set by sc.resetStream gotTrailerHeader bool // HEADER frame for trailers was seen wroteHeaders bool // whether we wrote headers (not status 100) + readDeadline *time.Timer // nil if unused writeDeadline *time.Timer // nil if unused + closeErr error // set before cw is closed trailer http.Header // accumulated trailers reqTrailer http.Header // handler's Request.Trailer @@ -738,6 +767,13 @@ func (sc *serverConn) condlogf(err error, format string, args ...interface{}) { } } +// maxCachedCanonicalHeadersKeysSize is an arbitrarily-chosen limit on the size +// of the entries in the canonHeader cache. +// This should be larger than the size of unique, uncommon header keys likely to +// be sent by the peer, while not so high as to permit unreasonable memory usage +// if the peer sends an unbounded number of unique header keys. +const maxCachedCanonicalHeadersKeysSize = 2048 + func (sc *serverConn) canonicalHeader(v string) string { sc.serveG.check() buildCommonHeaderMapsOnce() @@ -753,14 +789,10 @@ func (sc *serverConn) canonicalHeader(v string) string { sc.canonHeader = make(map[string]string) } cv = http.CanonicalHeaderKey(v) - // maxCachedCanonicalHeaders is an arbitrarily-chosen limit on the number of - // entries in the canonHeader cache. This should be larger than the number - // of unique, uncommon header keys likely to be sent by the peer, while not - // so high as to permit unreasonable memory usage if the peer sends an unbounded - // number of unique header keys. - const maxCachedCanonicalHeaders = 32 - if len(sc.canonHeader) < maxCachedCanonicalHeaders { + size := 100 + len(v)*2 // 100 bytes of map overhead + key + value + if sc.canonHeaderKeysSize+size <= maxCachedCanonicalHeadersKeysSize { sc.canonHeader[v] = cv + sc.canonHeaderKeysSize += size } return cv } @@ -811,8 +843,13 @@ type frameWriteResult struct { // and then reports when it's done. // At most one goroutine can be running writeFrameAsync at a time per // serverConn. -func (sc *serverConn) writeFrameAsync(wr FrameWriteRequest) { - err := wr.write.writeFrame(sc) +func (sc *serverConn) writeFrameAsync(wr FrameWriteRequest, wd *writeData) { + var err error + if wd == nil { + err = wr.write.writeFrame(sc) + } else { + err = sc.framer.endWrite() + } sc.wroteFrameCh <- frameWriteResult{wr: wr, err: err} } @@ -862,6 +899,7 @@ func (sc *serverConn) serve() { {SettingMaxFrameSize, sc.srv.maxReadFrameSize()}, {SettingMaxConcurrentStreams, sc.advMaxStreams}, {SettingMaxHeaderListSize, sc.maxHeaderListSize()}, + {SettingHeaderTableSize, sc.srv.maxDecoderHeaderTableSize()}, {SettingInitialWindowSize, uint32(sc.srv.initialStreamRecvWindowSize())}, }, }) @@ -948,6 +986,8 @@ func (sc *serverConn) serve() { } case *startPushRequest: sc.startPush(v) + case func(*serverConn): + v(sc) default: panic(fmt.Sprintf("unexpected type %T", v)) } @@ -1216,9 +1256,16 @@ func (sc *serverConn) startFrameWrite(wr FrameWriteRequest) { sc.writingFrameAsync = false err := wr.write.writeFrame(sc) sc.wroteFrame(frameWriteResult{wr: wr, err: err}) + } else if wd, ok := wr.write.(*writeData); ok { + // Encode the frame in the serve goroutine, to ensure we don't have + // any lingering asynchronous references to data passed to Write. + // See https://go.dev/issue/58446. + sc.framer.startWriteDataPadded(wd.streamID, wd.endStream, wd.p, nil) + sc.writingFrameAsync = true + go sc.writeFrameAsync(wr, wd) } else { sc.writingFrameAsync = true - go sc.writeFrameAsync(wr) + go sc.writeFrameAsync(wr, nil) } } @@ -1371,6 +1418,9 @@ func (sc *serverConn) startGracefulShutdownInternal() { func (sc *serverConn) goAway(code ErrCode) { sc.serveG.check() if sc.inGoAway { + if sc.goAwayCode == ErrCodeNo { + sc.goAwayCode = code + } return } sc.inGoAway = true @@ -1458,6 +1508,21 @@ func (sc *serverConn) processFrame(f Frame) error { sc.sawFirstSettings = true } + // Discard frames for streams initiated after the identified last + // stream sent in a GOAWAY, or all frames after sending an error. + // We still need to return connection-level flow control for DATA frames. + // RFC 9113 Section 6.8. + if sc.inGoAway && (sc.goAwayCode != ErrCodeNo || f.Header().StreamID > sc.maxClientStreamID) { + + if f, ok := f.(*DataFrame); ok { + if !sc.inflow.take(f.Length) { + return sc.countError("data_flow", streamError(f.Header().StreamID, ErrCodeFlowControl)) + } + sc.sendWindowUpdate(nil, int(f.Length)) // conn-level + } + return nil + } + switch f := f.(type) { case *SettingsFrame: return sc.processSettings(f) @@ -1500,9 +1565,6 @@ func (sc *serverConn) processPing(f *PingFrame) error { // PROTOCOL_ERROR." return sc.countError("ping_on_stream", ConnectionError(ErrCodeProtocol)) } - if sc.inGoAway && sc.goAwayCode != ErrCodeNo { - return nil - } sc.writeFrame(FrameWriteRequest{write: writePingAck{f}}) return nil } @@ -1564,6 +1626,9 @@ func (sc *serverConn) closeStream(st *stream, err error) { panic(fmt.Sprintf("invariant; can't close stream in state %v", st.state)) } st.state = stateClosed + if st.readDeadline != nil { + st.readDeadline.Stop() + } if st.writeDeadline != nil { st.writeDeadline.Stop() } @@ -1589,6 +1654,14 @@ func (sc *serverConn) closeStream(st *stream, err error) { p.CloseWithError(err) } + if e, ok := err.(StreamError); ok { + if e.Cause != nil { + err = e.Cause + } else { + err = errStreamClosed + } + } + st.closeErr = err st.cw.Close() // signals Handler's CloseNotifier, unblocks writes, etc sc.writeSched.CloseStream(st.id) } @@ -1631,7 +1704,6 @@ func (sc *serverConn) processSetting(s Setting) error { } switch s.ID { case SettingHeaderTableSize: - sc.headerTableSize = s.Val sc.hpackEncoder.SetMaxDynamicTableSize(s.Val) case SettingEnablePush: sc.pushEnabled = s.Val != 0 @@ -1685,16 +1757,6 @@ func (sc *serverConn) processSettingInitialWindowSize(val uint32) error { func (sc *serverConn) processData(f *DataFrame) error { sc.serveG.check() id := f.Header().StreamID - if sc.inGoAway && (sc.goAwayCode != ErrCodeNo || id > sc.maxClientStreamID) { - // Discard all DATA frames if the GOAWAY is due to an - // error, or: - // - // Section 6.8: After sending a GOAWAY frame, the sender - // can discard frames for streams initiated by the - // receiver with identifiers higher than the identified - // last stream. - return nil - } data := f.Data() state, st := sc.state(id) @@ -1725,14 +1787,9 @@ func (sc *serverConn) processData(f *DataFrame) error { // But still enforce their connection-level flow control, // and return any flow control bytes since we're not going // to consume them. - if sc.inflow.available() < int32(f.Length) { + if !sc.inflow.take(f.Length) { return sc.countError("data_flow", streamError(id, ErrCodeFlowControl)) } - // Deduct the flow control from inflow, since we're - // going to immediately add it back in - // sendWindowUpdate, which also schedules sending the - // frames. - sc.inflow.take(int32(f.Length)) sc.sendWindowUpdate(nil, int(f.Length)) // conn-level if st != nil && st.resetQueued { @@ -1747,6 +1804,11 @@ func (sc *serverConn) processData(f *DataFrame) error { // Sender sending more than they'd declared? if st.declBodyBytes != -1 && st.bodyBytes+int64(len(data)) > st.declBodyBytes { + if !sc.inflow.take(f.Length) { + return sc.countError("data_flow", streamError(id, ErrCodeFlowControl)) + } + sc.sendWindowUpdate(nil, int(f.Length)) // conn-level + st.body.CloseWithError(fmt.Errorf("sender tried to send more than declared Content-Length of %d bytes", st.declBodyBytes)) // RFC 7540, sec 8.1.2.6: A request or response is also malformed if the // value of a content-length header field does not equal the sum of the @@ -1755,10 +1817,9 @@ func (sc *serverConn) processData(f *DataFrame) error { } if f.Length > 0 { // Check whether the client has flow control quota. - if st.inflow.available() < int32(f.Length) { + if !takeInflows(&sc.inflow, &st.inflow, f.Length) { return sc.countError("flow_on_data_length", streamError(id, ErrCodeFlowControl)) } - st.inflow.take(int32(f.Length)) if len(data) > 0 { wrote, err := st.body.Write(data) @@ -1774,10 +1835,12 @@ func (sc *serverConn) processData(f *DataFrame) error { // Return any padded flow control now, since we won't // refund it later on body reads. - if pad := int32(f.Length) - int32(len(data)); pad > 0 { - sc.sendWindowUpdate32(nil, pad) - sc.sendWindowUpdate32(st, pad) - } + // Call sendWindowUpdate even if there is no padding, + // to return buffered flow control credit if the sent + // window has shrunk. + pad := int32(f.Length) - int32(len(data)) + sc.sendWindowUpdate32(nil, pad) + sc.sendWindowUpdate32(st, pad) } if f.StreamEnded() { st.endStream() @@ -1831,19 +1894,27 @@ func (st *stream) copyTrailersToHandlerRequest() { } } +// onReadTimeout is run on its own goroutine (from time.AfterFunc) +// when the stream's ReadTimeout has fired. +func (st *stream) onReadTimeout() { + // Wrap the ErrDeadlineExceeded to avoid callers depending on us + // returning the bare error. + st.body.CloseWithError(fmt.Errorf("%w", os.ErrDeadlineExceeded)) +} + // onWriteTimeout is run on its own goroutine (from time.AfterFunc) // when the stream's WriteTimeout has fired. func (st *stream) onWriteTimeout() { - st.sc.writeFrameFromHandler(FrameWriteRequest{write: streamError(st.id, ErrCodeInternal)}) + st.sc.writeFrameFromHandler(FrameWriteRequest{write: StreamError{ + StreamID: st.id, + Code: ErrCodeInternal, + Cause: os.ErrDeadlineExceeded, + }}) } func (sc *serverConn) processHeaders(f *MetaHeadersFrame) error { sc.serveG.check() id := f.StreamID - if sc.inGoAway { - // Ignore. - return nil - } // http://tools.ietf.org/html/rfc7540#section-5.1.1 // Streams initiated by a client MUST use odd-numbered stream // identifiers. [...] An endpoint that receives an unexpected @@ -1946,6 +2017,9 @@ func (sc *serverConn) processHeaders(f *MetaHeadersFrame) error { // (in Go 1.8), though. That's a more sane option anyway. if sc.hs.ReadTimeout != 0 { sc.conn.SetReadDeadline(time.Time{}) + if st.body != nil { + st.readDeadline = time.AfterFunc(sc.hs.ReadTimeout, st.onReadTimeout) + } } go sc.runHandler(rw, req, handler) @@ -2014,9 +2088,6 @@ func (sc *serverConn) checkPriority(streamID uint32, p PriorityParam) error { } func (sc *serverConn) processPriority(f *PriorityFrame) error { - if sc.inGoAway { - return nil - } if err := sc.checkPriority(f.StreamID, f.PriorityParam); err != nil { return err } @@ -2041,8 +2112,7 @@ func (sc *serverConn) newStream(id, pusherID uint32, state streamState) *stream st.cw.Init() st.flow.conn = &sc.flow // link to conn-level counter st.flow.add(sc.initialStreamSendWindowSize) - st.inflow.conn = &sc.inflow // link to conn-level counter - st.inflow.add(sc.srv.initialStreamRecvWindowSize()) + st.inflow.init(sc.srv.initialStreamRecvWindowSize()) if sc.hs.WriteTimeout != 0 { st.writeDeadline = time.AfterFunc(sc.hs.WriteTimeout, st.onWriteTimeout) } @@ -2090,12 +2160,6 @@ func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*res return nil, nil, sc.countError("bad_path_method", streamError(f.StreamID, ErrCodeProtocol)) } - bodyOpen := !f.StreamEnded() - if rp.method == "HEAD" && bodyOpen { - // HEAD requests can't have bodies - return nil, nil, sc.countError("head_body", streamError(f.StreamID, ErrCodeProtocol)) - } - rp.header = make(http.Header) for _, hf := range f.RegularFields() { rp.header.Add(sc.canonicalHeader(hf.Name), hf.Value) @@ -2108,6 +2172,7 @@ func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*res if err != nil { return nil, nil, err } + bodyOpen := !f.StreamEnded() if bodyOpen { if vv, ok := rp.header["Content-Length"]; ok { if cl, err := strconv.ParseUint(vv[0], 10, 63); err == nil { @@ -2139,7 +2204,7 @@ func (sc *serverConn) newWriterAndRequestNoBody(st *stream, rp requestParam) (*r tlsState = sc.tlsState } - needsContinue := rp.header.Get("Expect") == "100-continue" + needsContinue := httpguts.HeaderValuesContainsToken(rp.header["Expect"], "100-continue") if needsContinue { rp.header.Del("Expect") } @@ -2223,6 +2288,9 @@ func (sc *serverConn) runHandler(rw *responseWriter, req *http.Request, handler didPanic := true defer func() { rw.rws.stream.cancelCtx() + if req.MultipartForm != nil { + req.MultipartForm.RemoveAll() + } if didPanic { e := recover() sc.writeFrameFromHandler(FrameWriteRequest{ @@ -2326,47 +2394,28 @@ func (sc *serverConn) noteBodyRead(st *stream, n int) { } // st may be nil for conn-level -func (sc *serverConn) sendWindowUpdate(st *stream, n int) { - sc.serveG.check() - // "The legal range for the increment to the flow control - // window is 1 to 2^31-1 (2,147,483,647) octets." - // A Go Read call on 64-bit machines could in theory read - // a larger Read than this. Very unlikely, but we handle it here - // rather than elsewhere for now. - const maxUint31 = 1<<31 - 1 - for n >= maxUint31 { - sc.sendWindowUpdate32(st, maxUint31) - n -= maxUint31 - } - sc.sendWindowUpdate32(st, int32(n)) +func (sc *serverConn) sendWindowUpdate32(st *stream, n int32) { + sc.sendWindowUpdate(st, int(n)) } // st may be nil for conn-level -func (sc *serverConn) sendWindowUpdate32(st *stream, n int32) { +func (sc *serverConn) sendWindowUpdate(st *stream, n int) { sc.serveG.check() - if n == 0 { - return - } - if n < 0 { - panic("negative update") - } var streamID uint32 - if st != nil { + var send int32 + if st == nil { + send = sc.inflow.add(n) + } else { streamID = st.id + send = st.inflow.add(n) + } + if send == 0 { + return } sc.writeFrame(FrameWriteRequest{ - write: writeWindowUpdate{streamID: streamID, n: uint32(n)}, + write: writeWindowUpdate{streamID: streamID, n: uint32(send)}, stream: st, }) - var ok bool - if st == nil { - ok = sc.inflow.add(n) - } else { - ok = st.inflow.add(n) - } - if !ok { - panic("internal error; sent too many window updates without decrements?") - } } // requestBody is the Handler's Request.Body type. @@ -2454,7 +2503,15 @@ type responseWriterState struct { type chunkWriter struct{ rws *responseWriterState } -func (cw chunkWriter) Write(p []byte) (n int, err error) { return cw.rws.writeChunk(p) } +func (cw chunkWriter) Write(p []byte) (n int, err error) { + n, err = cw.rws.writeChunk(p) + if err == errStreamClosed { + // If writing failed because the stream has been closed, + // return the reason it was closed. + err = cw.rws.stream.closeErr + } + return n, err +} func (rws *responseWriterState) hasTrailers() bool { return len(rws.trailers) > 0 } @@ -2493,6 +2550,10 @@ func (rws *responseWriterState) writeChunk(p []byte) (n int, err error) { rws.writeHeader(200) } + if rws.handlerDone { + rws.promoteUndeclaredTrailers() + } + isHeadResp := rws.req.Method == "HEAD" if !rws.sentHeader { rws.sentHeader = true @@ -2564,10 +2625,6 @@ func (rws *responseWriterState) writeChunk(p []byte) (n int, err error) { return 0, nil } - if rws.handlerDone { - rws.promoteUndeclaredTrailers() - } - // only send trailers if they have actually been defined by the // server handler. hasNonemptyTrailers := rws.hasNonemptyTrailers() @@ -2648,23 +2705,85 @@ func (rws *responseWriterState) promoteUndeclaredTrailers() { } } +func (w *responseWriter) SetReadDeadline(deadline time.Time) error { + st := w.rws.stream + if !deadline.IsZero() && deadline.Before(time.Now()) { + // If we're setting a deadline in the past, reset the stream immediately + // so writes after SetWriteDeadline returns will fail. + st.onReadTimeout() + return nil + } + w.rws.conn.sendServeMsg(func(sc *serverConn) { + if st.readDeadline != nil { + if !st.readDeadline.Stop() { + // Deadline already exceeded, or stream has been closed. + return + } + } + if deadline.IsZero() { + st.readDeadline = nil + } else if st.readDeadline == nil { + st.readDeadline = time.AfterFunc(deadline.Sub(time.Now()), st.onReadTimeout) + } else { + st.readDeadline.Reset(deadline.Sub(time.Now())) + } + }) + return nil +} + +func (w *responseWriter) SetWriteDeadline(deadline time.Time) error { + st := w.rws.stream + if !deadline.IsZero() && deadline.Before(time.Now()) { + // If we're setting a deadline in the past, reset the stream immediately + // so writes after SetWriteDeadline returns will fail. + st.onWriteTimeout() + return nil + } + w.rws.conn.sendServeMsg(func(sc *serverConn) { + if st.writeDeadline != nil { + if !st.writeDeadline.Stop() { + // Deadline already exceeded, or stream has been closed. + return + } + } + if deadline.IsZero() { + st.writeDeadline = nil + } else if st.writeDeadline == nil { + st.writeDeadline = time.AfterFunc(deadline.Sub(time.Now()), st.onWriteTimeout) + } else { + st.writeDeadline.Reset(deadline.Sub(time.Now())) + } + }) + return nil +} + func (w *responseWriter) Flush() { + w.FlushError() +} + +func (w *responseWriter) FlushError() error { rws := w.rws if rws == nil { panic("Header called after Handler finished") } + var err error if rws.bw.Buffered() > 0 { - if err := rws.bw.Flush(); err != nil { - // Ignore the error. The frame writer already knows. - return - } + err = rws.bw.Flush() } else { // The bufio.Writer won't call chunkWriter.Write // (writeChunk with zero bytes, so we have to do it // ourselves to force the HTTP response header and/or // final DATA frame (with END_STREAM) to be sent. - rws.writeChunk(nil) + _, err = chunkWriter{rws}.Write(nil) + if err == nil { + select { + case <-rws.stream.cw: + err = rws.stream.closeErr + default: + } + } } + return err } func (w *responseWriter) CloseNotify() <-chan bool { diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go index 4ded4dfd5..05ba23d3d 100644 --- a/vendor/golang.org/x/net/http2/transport.go +++ b/vendor/golang.org/x/net/http2/transport.go @@ -16,6 +16,7 @@ import ( "errors" "fmt" "io" + "io/fs" "log" "math" mathrand "math/rand" @@ -46,10 +47,6 @@ const ( // we buffer per stream. transportDefaultStreamFlow = 4 << 20 - // transportDefaultStreamMinRefresh is the minimum number of bytes we'll send - // a stream-level WINDOW_UPDATE for at a time. - transportDefaultStreamMinRefresh = 4 << 10 - defaultUserAgent = "Go-http-client/2.0" // initialMaxConcurrentStreams is a connections maxConcurrentStreams until @@ -67,13 +64,23 @@ const ( // A Transport internally caches connections to servers. It is safe // for concurrent use by multiple goroutines. type Transport struct { - // DialTLS specifies an optional dial function for creating - // TLS connections for requests. + // DialTLSContext specifies an optional dial function with context for + // creating TLS connections for requests. // - // If DialTLS is nil, tls.Dial is used. + // If DialTLSContext and DialTLS is nil, tls.Dial is used. // // If the returned net.Conn has a ConnectionState method like tls.Conn, // it will be used to set http.Response.TLS. + DialTLSContext func(ctx context.Context, network, addr string, cfg *tls.Config) (net.Conn, error) + + // DialTLS specifies an optional dial function for creating + // TLS connections for requests. + // + // If DialTLSContext and DialTLS is nil, tls.Dial is used. + // + // Deprecated: Use DialTLSContext instead, which allows the transport + // to cancel dials as soon as they are no longer needed. + // If both are set, DialTLSContext takes priority. DialTLS func(network, addr string, cfg *tls.Config) (net.Conn, error) // TLSClientConfig specifies the TLS configuration to use with @@ -107,6 +114,28 @@ type Transport struct { // to mean no limit. MaxHeaderListSize uint32 + // MaxReadFrameSize is the http2 SETTINGS_MAX_FRAME_SIZE to send in the + // initial settings frame. It is the size in bytes of the largest frame + // payload that the sender is willing to receive. If 0, no setting is + // sent, and the value is provided by the peer, which should be 16384 + // according to the spec: + // https://datatracker.ietf.org/doc/html/rfc7540#section-6.5.2. + // Values are bounded in the range 16k to 16M. + MaxReadFrameSize uint32 + + // MaxDecoderHeaderTableSize optionally specifies the http2 + // SETTINGS_HEADER_TABLE_SIZE to send in the initial settings frame. It + // informs the remote endpoint of the maximum size of the header compression + // table used to decode header blocks, in octets. If zero, the default value + // of 4096 is used. + MaxDecoderHeaderTableSize uint32 + + // MaxEncoderHeaderTableSize optionally specifies an upper limit for the + // header compression table used for encoding request headers. Received + // SETTINGS_HEADER_TABLE_SIZE settings are capped at this limit. If zero, + // the default value of 4096 is used. + MaxEncoderHeaderTableSize uint32 + // StrictMaxConcurrentStreams controls whether the server's // SETTINGS_MAX_CONCURRENT_STREAMS should be respected // globally. If false, new TCP connections are created to the @@ -160,6 +189,19 @@ func (t *Transport) maxHeaderListSize() uint32 { return t.MaxHeaderListSize } +func (t *Transport) maxFrameReadSize() uint32 { + if t.MaxReadFrameSize == 0 { + return 0 // use the default provided by the peer + } + if t.MaxReadFrameSize < minMaxFrameSize { + return minMaxFrameSize + } + if t.MaxReadFrameSize > maxFrameSize { + return maxFrameSize + } + return t.MaxReadFrameSize +} + func (t *Transport) disableCompression() bool { return t.DisableCompression || (t.t1 != nil && t.t1.DisableCompression) } @@ -248,7 +290,8 @@ func (t *Transport) initConnPool() { // HTTP/2 server. type ClientConn struct { t *Transport - tconn net.Conn // usually *tls.Conn, except specialized impls + tconn net.Conn // usually *tls.Conn, except specialized impls + tconnClosed bool tlsState *tls.ConnectionState // nil only for specialized impls reused uint32 // whether conn is being reused; atomic singleUse bool // whether being used for a single http.Request @@ -263,8 +306,8 @@ type ClientConn struct { mu sync.Mutex // guards following cond *sync.Cond // hold mu; broadcast on flow/closed changes - flow flow // our conn-level flow control quota (cs.flow is per stream) - inflow flow // peer's conn-level flow control + flow outflow // our conn-level flow control quota (cs.outflow is per stream) + inflow inflow // peer's conn-level flow control doNotReuse bool // whether conn is marked to not be reused for any future requests closing bool closed bool @@ -281,10 +324,11 @@ type ClientConn struct { lastActive time.Time lastIdle time.Time // time last idle // Settings from peer: (also guarded by wmu) - maxFrameSize uint32 - maxConcurrentStreams uint32 - peerMaxHeaderListSize uint64 - initialWindowSize uint32 + maxFrameSize uint32 + maxConcurrentStreams uint32 + peerMaxHeaderListSize uint64 + peerMaxHeaderTableSize uint32 + initialWindowSize 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. @@ -328,14 +372,14 @@ type clientStream struct { respHeaderRecv chan struct{} // closed when headers are received res *http.Response // set if respHeaderRecv is closed - flow flow // guarded by cc.mu - inflow flow // guarded by cc.mu - bytesRemain int64 // -1 means unknown; owned by transportResponseBody.Read - readErr error // sticky read error; owned by transportResponseBody.Read + flow outflow // guarded by cc.mu + inflow inflow // guarded by cc.mu + bytesRemain int64 // -1 means unknown; owned by transportResponseBody.Read + readErr error // sticky read error; owned by transportResponseBody.Read reqBody io.ReadCloser - reqBodyContentLength int64 // -1 means unknown - reqBodyClosed bool // body has been closed; guarded by cc.mu + reqBodyContentLength int64 // -1 means unknown + reqBodyClosed chan struct{} // guarded by cc.mu; non-nil on Close, closed when done // owned by writeRequest: sentEndStream bool // sent an END_STREAM flag to the peer @@ -375,9 +419,8 @@ func (cs *clientStream) abortStreamLocked(err error) { cs.abortErr = err close(cs.abort) }) - if cs.reqBody != nil && !cs.reqBodyClosed { - cs.reqBody.Close() - cs.reqBodyClosed = true + if cs.reqBody != nil { + cs.closeReqBodyLocked() } // TODO(dneil): Clean up tests where cs.cc.cond is nil. if cs.cc.cond != nil { @@ -390,13 +433,24 @@ func (cs *clientStream) abortRequestBodyWrite() { cc := cs.cc cc.mu.Lock() defer cc.mu.Unlock() - if cs.reqBody != nil && !cs.reqBodyClosed { - cs.reqBody.Close() - cs.reqBodyClosed = true + if cs.reqBody != nil && cs.reqBodyClosed == nil { + cs.closeReqBodyLocked() cc.cond.Broadcast() } } +func (cs *clientStream) closeReqBodyLocked() { + if cs.reqBodyClosed != nil { + return + } + cs.reqBodyClosed = make(chan struct{}) + reqBodyClosed := cs.reqBodyClosed + go func() { + cs.reqBody.Close() + close(reqBodyClosed) + }() +} + type stickyErrWriter struct { conn net.Conn timeout time.Duration @@ -480,6 +534,15 @@ func authorityAddr(scheme string, authority string) (addr string) { return net.JoinHostPort(host, port) } +var retryBackoffHook func(time.Duration) *time.Timer + +func backoffNewTimer(d time.Duration) *time.Timer { + if retryBackoffHook != nil { + return retryBackoffHook(d) + } + return time.NewTimer(d) +} + // RoundTripOpt is like RoundTrip, but takes options. func (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Response, error) { if !(req.URL.Scheme == "https" || (req.URL.Scheme == "http" && t.AllowHTTP)) { @@ -505,11 +568,14 @@ func (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Res } backoff := float64(uint(1) << (uint(retry) - 1)) backoff += backoff * (0.1 * mathrand.Float64()) + d := time.Second * time.Duration(backoff) + timer := backoffNewTimer(d) select { - case <-time.After(time.Second * time.Duration(backoff)): + case <-timer.C: t.vlogf("RoundTrip retrying after failure: %v", err) continue case <-req.Context().Done(): + timer.Stop() err = req.Context().Err() } } @@ -592,7 +658,7 @@ func (t *Transport) dialClientConn(ctx context.Context, addr string, singleUse b if err != nil { return nil, err } - tconn, err := t.dialTLS(ctx)("tcp", addr, t.newTLSConfig(host)) + tconn, err := t.dialTLS(ctx, "tcp", addr, t.newTLSConfig(host)) if err != nil { return nil, err } @@ -613,24 +679,25 @@ func (t *Transport) newTLSConfig(host string) *tls.Config { return cfg } -func (t *Transport) dialTLS(ctx context.Context) func(string, string, *tls.Config) (net.Conn, error) { - if t.DialTLS != nil { - return t.DialTLS +func (t *Transport) dialTLS(ctx context.Context, network, addr string, tlsCfg *tls.Config) (net.Conn, error) { + if t.DialTLSContext != nil { + return t.DialTLSContext(ctx, network, addr, tlsCfg) + } else if t.DialTLS != nil { + return t.DialTLS(network, addr, tlsCfg) } - return func(network, addr string, cfg *tls.Config) (net.Conn, error) { - tlsCn, err := t.dialTLSWithContext(ctx, network, addr, cfg) - if err != nil { - return nil, err - } - state := tlsCn.ConnectionState() - if p := state.NegotiatedProtocol; p != NextProtoTLS { - return nil, fmt.Errorf("http2: unexpected ALPN protocol %q; want %q", p, NextProtoTLS) - } - if !state.NegotiatedProtocolIsMutual { - return nil, errors.New("http2: could not negotiate protocol mutually") - } - return tlsCn, nil + + tlsCn, err := t.dialTLSWithContext(ctx, network, addr, tlsCfg) + if err != nil { + return nil, err } + state := tlsCn.ConnectionState() + if p := state.NegotiatedProtocol; p != NextProtoTLS { + return nil, fmt.Errorf("http2: unexpected ALPN protocol %q; want %q", p, NextProtoTLS) + } + if !state.NegotiatedProtocolIsMutual { + return nil, errors.New("http2: could not negotiate protocol mutually") + } + return tlsCn, nil } // disableKeepAlives reports whether connections should be closed as @@ -646,6 +713,20 @@ func (t *Transport) expectContinueTimeout() time.Duration { return t.t1.ExpectContinueTimeout } +func (t *Transport) maxDecoderHeaderTableSize() uint32 { + if v := t.MaxDecoderHeaderTableSize; v > 0 { + return v + } + return initialHeaderTableSize +} + +func (t *Transport) maxEncoderHeaderTableSize() uint32 { + if v := t.MaxEncoderHeaderTableSize; v > 0 { + return v + } + return initialHeaderTableSize +} + func (t *Transport) NewClientConn(c net.Conn) (*ClientConn, error) { return t.newClientConn(c, t.disableKeepAlives()) } @@ -686,15 +767,19 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro }) cc.br = bufio.NewReader(c) cc.fr = NewFramer(cc.bw, cc.br) + if t.maxFrameReadSize() != 0 { + cc.fr.SetMaxReadFrameSize(t.maxFrameReadSize()) + } if t.CountError != nil { cc.fr.countError = t.CountError } - cc.fr.ReadMetaHeaders = hpack.NewDecoder(initialHeaderTableSize, nil) + maxHeaderTableSize := t.maxDecoderHeaderTableSize() + cc.fr.ReadMetaHeaders = hpack.NewDecoder(maxHeaderTableSize, nil) cc.fr.MaxHeaderListSize = t.maxHeaderListSize() - // TODO: SetMaxDynamicTableSize, SetMaxDynamicTableSizeLimit on - // henc in response to SETTINGS frames? cc.henc = hpack.NewEncoder(&cc.hbuf) + cc.henc.SetMaxDynamicTableSizeLimit(t.maxEncoderHeaderTableSize()) + cc.peerMaxHeaderTableSize = initialHeaderTableSize if t.AllowHTTP { cc.nextStreamID = 3 @@ -709,14 +794,20 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro {ID: SettingEnablePush, Val: 0}, {ID: SettingInitialWindowSize, Val: transportDefaultStreamFlow}, } + if max := t.maxFrameReadSize(); max != 0 { + initialSettings = append(initialSettings, Setting{ID: SettingMaxFrameSize, Val: max}) + } if max := t.maxHeaderListSize(); max != 0 { initialSettings = append(initialSettings, Setting{ID: SettingMaxHeaderListSize, Val: max}) } + if maxHeaderTableSize != initialHeaderTableSize { + initialSettings = append(initialSettings, Setting{ID: SettingHeaderTableSize, Val: maxHeaderTableSize}) + } cc.bw.Write(clientPreface) cc.fr.WriteSettings(initialSettings...) cc.fr.WriteWindowUpdate(0, transportDefaultConnFlow) - cc.inflow.add(transportDefaultConnFlow + initialWindowSize) + cc.inflow.init(transportDefaultConnFlow + initialWindowSize) cc.bw.Flush() if cc.werr != nil { cc.Close() @@ -910,10 +1001,10 @@ func (cc *ClientConn) onIdleTimeout() { cc.closeIfIdle() } -func (cc *ClientConn) closeConn() error { +func (cc *ClientConn) closeConn() { t := time.AfterFunc(250*time.Millisecond, cc.forceCloseConn) defer t.Stop() - return cc.tconn.Close() + cc.tconn.Close() } // A tls.Conn.Close can hang for a long time if the peer is unresponsive. @@ -979,7 +1070,8 @@ func (cc *ClientConn) Shutdown(ctx context.Context) error { shutdownEnterWaitStateHook() select { case <-done: - return cc.closeConn() + cc.closeConn() + return nil case <-ctx.Done(): cc.mu.Lock() // Free the goroutine above @@ -1016,7 +1108,7 @@ func (cc *ClientConn) sendGoAway() error { // closes the client connection immediately. In-flight requests are interrupted. // err is sent to streams. -func (cc *ClientConn) closeForError(err error) error { +func (cc *ClientConn) closeForError(err error) { cc.mu.Lock() cc.closed = true for _, cs := range cc.streams { @@ -1024,7 +1116,7 @@ func (cc *ClientConn) closeForError(err error) error { } cc.cond.Broadcast() cc.mu.Unlock() - return cc.closeConn() + cc.closeConn() } // Close closes the client connection immediately. @@ -1032,16 +1124,17 @@ func (cc *ClientConn) closeForError(err error) error { // In-flight requests are interrupted. For a graceful shutdown, use Shutdown instead. func (cc *ClientConn) Close() error { err := errors.New("http2: client connection force closed via ClientConn.Close") - return cc.closeForError(err) + cc.closeForError(err) + return nil } // closes the client connection immediately. In-flight requests are interrupted. -func (cc *ClientConn) closeForLostPing() error { +func (cc *ClientConn) closeForLostPing() { err := errors.New("http2: client connection lost") if f := cc.t.CountError; f != nil { f("conn_close_lost_ping") } - return cc.closeForError(err) + cc.closeForError(err) } // errRequestCanceled is a copy of net/http's errRequestCanceled because it's not @@ -1051,7 +1144,7 @@ var errRequestCanceled = errors.New("net/http: request canceled") func commaSeparatedTrailers(req *http.Request) (string, error) { keys := make([]string, 0, len(req.Trailer)) for k := range req.Trailer { - k = http.CanonicalHeaderKey(k) + k = canonicalHeader(k) switch k { case "Transfer-Encoding", "Trailer", "Content-Length": return "", fmt.Errorf("invalid Trailer key %q", k) @@ -1419,11 +1512,19 @@ func (cs *clientStream) cleanupWriteRequest(err error) { // and in multiple cases: server replies <=299 and >299 // while still writing request body cc.mu.Lock() + mustCloseBody := false + if cs.reqBody != nil && cs.reqBodyClosed == nil { + mustCloseBody = true + cs.reqBodyClosed = make(chan struct{}) + } bodyClosed := cs.reqBodyClosed - cs.reqBodyClosed = true cc.mu.Unlock() - if !bodyClosed && cs.reqBody != nil { + if mustCloseBody { cs.reqBody.Close() + close(bodyClosed) + } + if bodyClosed != nil { + <-bodyClosed } if err != nil && cs.sentEndStream { @@ -1468,7 +1569,7 @@ func (cs *clientStream) cleanupWriteRequest(err error) { close(cs.donec) } -// awaitOpenSlotForStream waits until len(streams) < maxConcurrentStreams. +// awaitOpenSlotForStreamLocked waits until len(streams) < maxConcurrentStreams. // Must hold cc.mu. func (cc *ClientConn) awaitOpenSlotForStreamLocked(cs *clientStream) error { for { @@ -1580,7 +1681,7 @@ func (cs *clientStream) writeRequestBody(req *http.Request) (err error) { var sawEOF bool for !sawEOF { - n, err := body.Read(buf[:len(buf)]) + n, err := body.Read(buf) if hasContentLen { remainLen -= int64(n) if remainLen == 0 && err == nil { @@ -1603,7 +1704,7 @@ func (cs *clientStream) writeRequestBody(req *http.Request) (err error) { } if err != nil { cc.mu.Lock() - bodyClosed := cs.reqBodyClosed + bodyClosed := cs.reqBodyClosed != nil cc.mu.Unlock() switch { case bodyClosed: @@ -1698,7 +1799,7 @@ func (cs *clientStream) awaitFlowControl(maxBytes int) (taken int32, err error) if cc.closed { return 0, errClientConnClosed } - if cs.reqBodyClosed { + if cs.reqBodyClosed != nil { return 0, errStopReqBodyWrite } select { @@ -1883,7 +1984,7 @@ func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trail // Header list size is ok. Write the headers. enumerateHeaders(func(name, value string) { - name, ascii := asciiToLower(name) + name, ascii := lowerHeader(name) if !ascii { // Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header // field names have to be ASCII characters (just as in HTTP/1.x). @@ -1936,7 +2037,7 @@ func (cc *ClientConn) encodeTrailers(trailer http.Header) ([]byte, error) { } for k, vv := range trailer { - lowKey, ascii := asciiToLower(k) + lowKey, ascii := lowerHeader(k) if !ascii { // Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header // field names have to be ASCII characters (just as in HTTP/1.x). @@ -1968,8 +2069,7 @@ type resAndError struct { func (cc *ClientConn) addStreamLocked(cs *clientStream) { cs.flow.add(int32(cc.initialWindowSize)) cs.flow.setConnFlow(&cc.flow) - cs.inflow.add(transportDefaultStreamFlow) - cs.inflow.setConnFlow(&cc.inflow) + cs.inflow.init(transportDefaultStreamFlow) cs.ID = cc.nextStreamID cc.nextStreamID += 2 cc.streams[cs.ID] = cs @@ -1994,7 +2094,7 @@ func (cc *ClientConn) forgetStreamID(id uint32) { // wake up RoundTrip if there is a pending request. cc.cond.Broadcast() - closeOnIdle := cc.singleUse || cc.doNotReuse || cc.t.disableKeepAlives() + closeOnIdle := cc.singleUse || cc.doNotReuse || cc.t.disableKeepAlives() || cc.goAway != nil if closeOnIdle && cc.streamsReserved == 0 && len(cc.streams) == 0 { if VerboseLogs { cc.vlogf("http2: Transport closing idle conn %p (forSingleUse=%v, maxStream=%v)", cc, cc.singleUse, cc.nextStreamID-2) @@ -2070,6 +2170,7 @@ func (rl *clientConnReadLoop) cleanup() { err = io.ErrUnexpectedEOF } cc.closed = true + for _, cs := range cc.streams { select { case <-cs.peerClosed: @@ -2268,7 +2369,7 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra Status: status + " " + http.StatusText(statusCode), } for _, hf := range regularFields { - key := http.CanonicalHeaderKey(hf.Name) + key := canonicalHeader(hf.Name) if key == "Trailer" { t := res.Trailer if t == nil { @@ -2276,7 +2377,7 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra res.Trailer = t } foreachHeaderElement(hf.Value, func(v string) { - t[http.CanonicalHeaderKey(v)] = nil + t[canonicalHeader(v)] = nil }) } else { vv := header[key] @@ -2381,7 +2482,7 @@ func (rl *clientConnReadLoop) processTrailers(cs *clientStream, f *MetaHeadersFr trailer := make(http.Header) for _, hf := range f.RegularFields() { - key := http.CanonicalHeaderKey(hf.Name) + key := canonicalHeader(hf.Name) trailer[key] = append(trailer[key], hf.Value) } cs.trailer = trailer @@ -2427,21 +2528,10 @@ func (b transportResponseBody) Read(p []byte) (n int, err error) { } cc.mu.Lock() - var connAdd, streamAdd int32 - // Check the conn-level first, before the stream-level. - if v := cc.inflow.available(); v < transportDefaultConnFlow/2 { - connAdd = transportDefaultConnFlow - v - cc.inflow.add(connAdd) - } + connAdd := cc.inflow.add(n) + var streamAdd int32 if err == nil { // No need to refresh if the stream is over or failed. - // Consider any buffered body data (read from the conn but not - // consumed by the client) when computing flow control for this - // stream. - v := int(cs.inflow.available()) + cs.bufPipe.Len() - if v < transportDefaultStreamFlow-transportDefaultStreamMinRefresh { - streamAdd = int32(transportDefaultStreamFlow - v) - cs.inflow.add(streamAdd) - } + streamAdd = cs.inflow.add(n) } cc.mu.Unlock() @@ -2469,17 +2559,15 @@ func (b transportResponseBody) Close() error { if unread > 0 { cc.mu.Lock() // Return connection-level flow control. - if unread > 0 { - cc.inflow.add(int32(unread)) - } + connAdd := cc.inflow.add(unread) cc.mu.Unlock() // TODO(dneil): Acquiring this mutex can block indefinitely. // Move flow control return to a goroutine? cc.wmu.Lock() // Return connection-level flow control. - if unread > 0 { - cc.fr.WriteWindowUpdate(0, uint32(unread)) + if connAdd > 0 { + cc.fr.WriteWindowUpdate(0, uint32(connAdd)) } cc.bw.Flush() cc.wmu.Unlock() @@ -2522,13 +2610,18 @@ func (rl *clientConnReadLoop) processData(f *DataFrame) error { // But at least return their flow control: if f.Length > 0 { cc.mu.Lock() - cc.inflow.add(int32(f.Length)) + ok := cc.inflow.take(f.Length) + connAdd := cc.inflow.add(int(f.Length)) cc.mu.Unlock() - - cc.wmu.Lock() - cc.fr.WriteWindowUpdate(0, uint32(f.Length)) - cc.bw.Flush() - cc.wmu.Unlock() + if !ok { + return ConnectionError(ErrCodeFlowControl) + } + if connAdd > 0 { + cc.wmu.Lock() + cc.fr.WriteWindowUpdate(0, uint32(connAdd)) + cc.bw.Flush() + cc.wmu.Unlock() + } } return nil } @@ -2559,9 +2652,7 @@ func (rl *clientConnReadLoop) processData(f *DataFrame) error { } // Check connection-level flow control. cc.mu.Lock() - if cs.inflow.available() >= int32(f.Length) { - cs.inflow.take(int32(f.Length)) - } else { + if !takeInflows(&cc.inflow, &cs.inflow, f.Length) { cc.mu.Unlock() return ConnectionError(ErrCodeFlowControl) } @@ -2583,19 +2674,20 @@ func (rl *clientConnReadLoop) processData(f *DataFrame) error { } } - if refund > 0 { - cc.inflow.add(int32(refund)) - if !didReset { - cs.inflow.add(int32(refund)) - } + sendConn := cc.inflow.add(refund) + var sendStream int32 + if !didReset { + sendStream = cs.inflow.add(refund) } cc.mu.Unlock() - if refund > 0 { + if sendConn > 0 || sendStream > 0 { cc.wmu.Lock() - cc.fr.WriteWindowUpdate(0, uint32(refund)) - if !didReset { - cc.fr.WriteWindowUpdate(cs.ID, uint32(refund)) + if sendConn > 0 { + cc.fr.WriteWindowUpdate(0, uint32(sendConn)) + } + if sendStream > 0 { + cc.fr.WriteWindowUpdate(cs.ID, uint32(sendStream)) } cc.bw.Flush() cc.wmu.Unlock() @@ -2663,7 +2755,6 @@ func (rl *clientConnReadLoop) processGoAway(f *GoAwayFrame) error { if fn := cc.t.CountError; fn != nil { fn("recv_goaway_" + f.ErrCode.stringToken()) } - } cc.setGoAway(f) return nil @@ -2728,8 +2819,10 @@ func (rl *clientConnReadLoop) processSettingsNoWrite(f *SettingsFrame) error { cc.cond.Broadcast() cc.initialWindowSize = s.Val + case SettingHeaderTableSize: + cc.henc.SetMaxDynamicTableSize(s.Val) + cc.peerMaxHeaderTableSize = s.Val default: - // TODO(bradfitz): handle more settings? SETTINGS_HEADER_TABLE_SIZE probably. cc.vlogf("Unhandled Setting: %v", s) } return nil @@ -2953,7 +3046,11 @@ func (gz *gzipReader) Read(p []byte) (n int, err error) { } func (gz *gzipReader) Close() error { - return gz.body.Close() + if err := gz.body.Close(); err != nil { + return err + } + gz.zerr = fs.ErrClosed + return nil } type errorReader struct{ err error } @@ -3017,7 +3114,7 @@ func traceGotConn(req *http.Request, cc *ClientConn, reused bool) { cc.mu.Lock() ci.WasIdle = len(cc.streams) == 0 && reused if ci.WasIdle && !cc.lastActive.IsZero() { - ci.IdleTime = time.Now().Sub(cc.lastActive) + ci.IdleTime = time.Since(cc.lastActive) } cc.mu.Unlock() diff --git a/vendor/golang.org/x/sys/execabs/execabs_go119.go b/vendor/golang.org/x/sys/execabs/execabs_go119.go index 1e7a9ada0..46c5b525e 100644 --- a/vendor/golang.org/x/sys/execabs/execabs_go119.go +++ b/vendor/golang.org/x/sys/execabs/execabs_go119.go @@ -7,9 +7,11 @@ package execabs -import "strings" +import ( + "errors" + "os/exec" +) func isGo119ErrDot(err error) bool { - // TODO: return errors.Is(err, exec.ErrDot) - return strings.Contains(err.Error(), "current directory") + return errors.Is(err, exec.ErrDot) } diff --git a/vendor/golang.org/x/sys/unix/gccgo.go b/vendor/golang.org/x/sys/unix/gccgo.go index 0dee23222..b06f52d74 100644 --- a/vendor/golang.org/x/sys/unix/gccgo.go +++ b/vendor/golang.org/x/sys/unix/gccgo.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build gccgo && !aix -// +build gccgo,!aix +//go:build gccgo && !aix && !hurd +// +build gccgo,!aix,!hurd package unix diff --git a/vendor/golang.org/x/sys/unix/gccgo_c.c b/vendor/golang.org/x/sys/unix/gccgo_c.c index 2cb1fefac..f98a1c542 100644 --- a/vendor/golang.org/x/sys/unix/gccgo_c.c +++ b/vendor/golang.org/x/sys/unix/gccgo_c.c @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build gccgo -// +build !aix +//go:build gccgo && !aix && !hurd +// +build gccgo,!aix,!hurd #include #include diff --git a/vendor/golang.org/x/sys/unix/ioctl.go b/vendor/golang.org/x/sys/unix/ioctl.go index 6c7ad052e..1c51b0ec2 100644 --- a/vendor/golang.org/x/sys/unix/ioctl.go +++ b/vendor/golang.org/x/sys/unix/ioctl.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris +//go:build aix || darwin || dragonfly || freebsd || hurd || linux || netbsd || openbsd || solaris +// +build aix darwin dragonfly freebsd hurd linux netbsd openbsd solaris package unix diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh index 727cba212..8e3947c36 100644 --- a/vendor/golang.org/x/sys/unix/mkall.sh +++ b/vendor/golang.org/x/sys/unix/mkall.sh @@ -174,10 +174,10 @@ openbsd_arm64) mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" ;; openbsd_mips64) + mkasm="go run mkasm.go" mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd" + mksyscall="go run mksyscall.go -openbsd -libc" mksysctl="go run mksysctl_openbsd.go" - mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" # Let the type of C char be signed for making the bare syscall # API consistent across platforms. mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go index 453a942c5..3865943f6 100644 --- a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go +++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go @@ -52,6 +52,20 @@ func ParseSocketControlMessage(b []byte) ([]SocketControlMessage, error) { return msgs, nil } +// ParseOneSocketControlMessage parses a single socket control message from b, returning the message header, +// message data (a slice of b), and the remainder of b after that single message. +// When there are no remaining messages, len(remainder) == 0. +func ParseOneSocketControlMessage(b []byte) (hdr Cmsghdr, data []byte, remainder []byte, err error) { + h, dbuf, err := socketControlMessageHeaderAndData(b) + if err != nil { + return Cmsghdr{}, nil, nil, err + } + if i := cmsgAlignOf(int(h.Len)); i < len(b) { + remainder = b[i:] + } + return *h, dbuf, remainder, nil +} + func socketControlMessageHeaderAndData(b []byte) (*Cmsghdr, []byte, error) { h := (*Cmsghdr)(unsafe.Pointer(&b[0])) if h.Len < SizeofCmsghdr || uint64(h.Len) > uint64(len(b)) { diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go index 1f6338218..192b071b3 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go @@ -230,6 +230,7 @@ func direntNamlen(buf []byte) (uint64, bool) { func PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) } func PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) } +func PtraceDenyAttach() (err error) { return ptrace(PT_DENY_ATTACH, 0, 0, 0) } //sysnb pipe(p *[2]int32) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go index 61c0d0de1..a41111a79 100644 --- a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go +++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go @@ -255,6 +255,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Chmod(path string, mode uint32) (err error) //sys Chown(path string, uid int, gid int) (err error) //sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) //sys Close(fd int) (err error) //sys Dup(fd int) (nfd int, err error) //sys Dup2(from int, to int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go index de7c23e06..d50b9dc25 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go @@ -319,6 +319,7 @@ func PtraceSingleStep(pid int) (err error) { //sys Chmod(path string, mode uint32) (err error) //sys Chown(path string, uid int, gid int) (err error) //sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) //sys Close(fd int) (err error) //sys Dup(fd int) (nfd int, err error) //sys Dup2(from int, to int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go index b11ede89a..6a91d471d 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go @@ -60,8 +60,13 @@ func PtraceGetFsBase(pid int, fsbase *int64) (err error) { return ptrace(PT_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0) } -func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { - ioDesc := PtraceIoDesc{Op: int32(req), Offs: uintptr(unsafe.Pointer(addr)), Addr: uintptr(unsafe.Pointer(&out[0])), Len: uint32(countin)} +func PtraceIO(req int, pid int, offs uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{ + Op: int32(req), + Offs: offs, + Addr: uintptr(unsafe.Pointer(&out[0])), // TODO(#58351): this is not safe. + Len: uint32(countin), + } err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) return int(ioDesc.Len), err } diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go index 9ed8eec6c..48110a0ab 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go @@ -60,8 +60,13 @@ func PtraceGetFsBase(pid int, fsbase *int64) (err error) { return ptrace(PT_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0) } -func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { - ioDesc := PtraceIoDesc{Op: int32(req), Offs: uintptr(unsafe.Pointer(addr)), Addr: uintptr(unsafe.Pointer(&out[0])), Len: uint64(countin)} +func PtraceIO(req int, pid int, offs uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{ + Op: int32(req), + Offs: offs, + Addr: uintptr(unsafe.Pointer(&out[0])), // TODO(#58351): this is not safe. + Len: uint64(countin), + } err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) return int(ioDesc.Len), err } diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go index f8ac98247..52f1d4b75 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go @@ -56,8 +56,13 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) -func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { - ioDesc := PtraceIoDesc{Op: int32(req), Offs: uintptr(unsafe.Pointer(addr)), Addr: uintptr(unsafe.Pointer(&out[0])), Len: uint32(countin)} +func PtraceIO(req int, pid int, offs uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{ + Op: int32(req), + Offs: offs, + Addr: uintptr(unsafe.Pointer(&out[0])), // TODO(#58351): this is not safe. + Len: uint32(countin), + } err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) return int(ioDesc.Len), err } diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go index 8e932036e..5537ee4f2 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go @@ -56,8 +56,13 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) -func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { - ioDesc := PtraceIoDesc{Op: int32(req), Offs: uintptr(unsafe.Pointer(addr)), Addr: uintptr(unsafe.Pointer(&out[0])), Len: uint64(countin)} +func PtraceIO(req int, pid int, offs uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{ + Op: int32(req), + Offs: offs, + Addr: uintptr(unsafe.Pointer(&out[0])), // TODO(#58351): this is not safe. + Len: uint64(countin), + } err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) return int(ioDesc.Len), err } diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go index cbe122278..164abd5d2 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go @@ -56,8 +56,13 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) -func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { - ioDesc := PtraceIoDesc{Op: int32(req), Offs: uintptr(unsafe.Pointer(addr)), Addr: uintptr(unsafe.Pointer(&out[0])), Len: uint64(countin)} +func PtraceIO(req int, pid int, offs uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{ + Op: int32(req), + Offs: offs, + Addr: uintptr(unsafe.Pointer(&out[0])), // TODO(#58351): this is not safe. + Len: uint64(countin), + } err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) return int(ioDesc.Len), err } diff --git a/vendor/golang.org/x/sys/unix/syscall_hurd.go b/vendor/golang.org/x/sys/unix/syscall_hurd.go new file mode 100644 index 000000000..4ffb64808 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_hurd.go @@ -0,0 +1,22 @@ +// Copyright 2022 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 hurd +// +build hurd + +package unix + +/* +#include +int ioctl(int, unsigned long int, uintptr_t); +*/ +import "C" + +func ioctl(fd int, req uint, arg uintptr) (err error) { + r0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(arg)) + if r0 == -1 && er != nil { + err = er + } + return +} diff --git a/vendor/golang.org/x/sys/unix/syscall_hurd_386.go b/vendor/golang.org/x/sys/unix/syscall_hurd_386.go new file mode 100644 index 000000000..7cf54a3e4 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_hurd_386.go @@ -0,0 +1,29 @@ +// Copyright 2022 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 386 && hurd +// +build 386,hurd + +package unix + +const ( + TIOCGETA = 0x62251713 +) + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go index e044d5b54..5443dddd4 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux.go @@ -1554,6 +1554,7 @@ func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Sockle var iova [1]Iovec iova[0].Base = &dummy iova[0].SetLen(1) + iov = iova[:] } } msg.Control = &oob[0] @@ -1799,6 +1800,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sysnb Capset(hdr *CapUserHeader, data *CapUserData) (err error) //sys Chdir(path string) (err error) //sys Chroot(path string) (err error) +//sys ClockAdjtime(clockid int32, buf *Timex) (state int, err error) //sys ClockGetres(clockid int32, res *Timespec) (err error) //sys ClockGettime(clockid int32, time *Timespec) (err error) //sys ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) @@ -1972,36 +1974,46 @@ func Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) { //sys preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PREADV2 //sys pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PWRITEV2 -func bytes2iovec(bs [][]byte) []Iovec { - iovecs := make([]Iovec, len(bs)) - for i, b := range bs { - iovecs[i].SetLen(len(b)) +// minIovec is the size of the small initial allocation used by +// Readv, Writev, etc. +// +// This small allocation gets stack allocated, which lets the +// common use case of len(iovs) <= minIovs avoid more expensive +// heap allocations. +const minIovec = 8 + +// appendBytes converts bs to Iovecs and appends them to vecs. +func appendBytes(vecs []Iovec, bs [][]byte) []Iovec { + for _, b := range bs { + var v Iovec + v.SetLen(len(b)) if len(b) > 0 { - iovecs[i].Base = &b[0] + v.Base = &b[0] } else { - iovecs[i].Base = (*byte)(unsafe.Pointer(&_zero)) + v.Base = (*byte)(unsafe.Pointer(&_zero)) } + vecs = append(vecs, v) } - return iovecs + return vecs } -// offs2lohi splits offs into its lower and upper unsigned long. On 64-bit -// systems, hi will always be 0. On 32-bit systems, offs will be split in half. -// preadv/pwritev chose this calling convention so they don't need to add a -// padding-register for alignment on ARM. +// offs2lohi splits offs into its low and high order bits. func offs2lohi(offs int64) (lo, hi uintptr) { - return uintptr(offs), uintptr(uint64(offs) >> SizeofLong) + const longBits = SizeofLong * 8 + return uintptr(offs), uintptr(uint64(offs) >> (longBits - 1) >> 1) // two shifts to avoid false positive in vet } func Readv(fd int, iovs [][]byte) (n int, err error) { - iovecs := bytes2iovec(iovs) + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) n, err = readv(fd, iovecs) readvRacedetect(iovecs, n, err) return n, err } func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) { - iovecs := bytes2iovec(iovs) + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) lo, hi := offs2lohi(offset) n, err = preadv(fd, iovecs, lo, hi) readvRacedetect(iovecs, n, err) @@ -2009,7 +2021,8 @@ func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) { } func Preadv2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) { - iovecs := bytes2iovec(iovs) + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) lo, hi := offs2lohi(offset) n, err = preadv2(fd, iovecs, lo, hi, flags) readvRacedetect(iovecs, n, err) @@ -2036,7 +2049,8 @@ func readvRacedetect(iovecs []Iovec, n int, err error) { } func Writev(fd int, iovs [][]byte) (n int, err error) { - iovecs := bytes2iovec(iovs) + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) if raceenabled { raceReleaseMerge(unsafe.Pointer(&ioSync)) } @@ -2046,7 +2060,8 @@ func Writev(fd int, iovs [][]byte) (n int, err error) { } func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) { - iovecs := bytes2iovec(iovs) + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) if raceenabled { raceReleaseMerge(unsafe.Pointer(&ioSync)) } @@ -2057,7 +2072,8 @@ func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) { } func Pwritev2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) { - iovecs := bytes2iovec(iovs) + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) if raceenabled { raceReleaseMerge(unsafe.Pointer(&ioSync)) } diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go index 666f0a1b3..35a3ad758 100644 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go @@ -110,6 +110,20 @@ func direntNamlen(buf []byte) (uint64, bool) { return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) } +func SysctlUvmexp(name string) (*Uvmexp, error) { + mib, err := sysctlmib(name) + if err != nil { + return nil, err + } + + n := uintptr(SizeofUvmexp) + var u Uvmexp + if err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil { + return nil, err + } + return &u, nil +} + func Pipe(p []int) (err error) { return Pipe2(p, 0) } @@ -245,6 +259,7 @@ func Statvfs(path string, buf *Statvfs_t) (err error) { //sys Chmod(path string, mode uint32) (err error) //sys Chown(path string, uid int, gid int) (err error) //sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) //sys Close(fd int) (err error) //sys Dup(fd int) (nfd int, err error) //sys Dup2(from int, to int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go index 78daceb33..9b67b908e 100644 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go @@ -220,6 +220,7 @@ func Uname(uname *Utsname) error { //sys Chmod(path string, mode uint32) (err error) //sys Chown(path string, uid int, gid int) (err error) //sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) //sys Close(fd int) (err error) //sys Dup(fd int) (nfd int, err error) //sys Dup2(from int, to int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go index e23c5394e..04aa43f41 100644 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build openbsd && !mips64 -// +build openbsd,!mips64 +//go:build openbsd +// +build openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go index 2109e569c..07ac56109 100644 --- a/vendor/golang.org/x/sys/unix/syscall_solaris.go +++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go @@ -590,6 +590,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Chmod(path string, mode uint32) (err error) //sys Chown(path string, uid int, gid int) (err error) //sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) //sys Close(fd int) (err error) //sys Creat(path string, mode uint32) (fd int, err error) //sys Dup(fd int) (nfd int, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go index 00bafda86..00f0aa375 100644 --- a/vendor/golang.org/x/sys/unix/syscall_unix.go +++ b/vendor/golang.org/x/sys/unix/syscall_unix.go @@ -331,6 +331,19 @@ func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) { return } +// Recvmsg receives a message from a socket using the recvmsg system call. The +// received non-control data will be written to p, and any "out of band" +// control data will be written to oob. The flags are passed to recvmsg. +// +// The results are: +// - n is the number of non-control data bytes read into p +// - oobn is the number of control data bytes read into oob; this may be interpreted using [ParseSocketControlMessage] +// - recvflags is flags returned by recvmsg +// - from is the address of the sender +// +// If the underlying socket type is not SOCK_DGRAM, a received message +// containing oob data and a single '\0' of non-control data is treated as if +// the message contained only control data, i.e. n will be zero on return. func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { var iov [1]Iovec if len(p) > 0 { @@ -346,13 +359,9 @@ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from return } -// RecvmsgBuffers receives a message from a socket using the recvmsg -// system call. The flags are passed to recvmsg. Any non-control data -// read is scattered into the buffers slices. The results are: -// - n is the number of non-control data read into bufs -// - oobn is the number of control data read into oob; this may be interpreted using [ParseSocketControlMessage] -// - recvflags is flags returned by recvmsg -// - from is the address of the sender +// RecvmsgBuffers receives a message from a socket using the recvmsg system +// call. This function is equivalent to Recvmsg, but non-control data read is +// scattered into the buffers slices. func RecvmsgBuffers(fd int, buffers [][]byte, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { iov := make([]Iovec, len(buffers)) for i := range buffers { @@ -371,11 +380,38 @@ func RecvmsgBuffers(fd int, buffers [][]byte, oob []byte, flags int) (n, oobn in return } +// Sendmsg sends a message on a socket to an address using the sendmsg system +// call. This function is equivalent to SendmsgN, but does not return the +// number of bytes actually sent. func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { _, err = SendmsgN(fd, p, oob, to, flags) return } +// SendmsgN sends a message on a socket to an address using the sendmsg system +// call. p contains the non-control data to send, and oob contains the "out of +// band" control data. The flags are passed to sendmsg. The number of +// non-control bytes actually written to the socket is returned. +// +// Some socket types do not support sending control data without accompanying +// non-control data. If p is empty, and oob contains control data, and the +// underlying socket type is not SOCK_DGRAM, p will be treated as containing a +// single '\0' and the return value will indicate zero bytes sent. +// +// The Go function Recvmsg, if called with an empty p and a non-empty oob, +// will read and ignore this additional '\0'. If the message is received by +// code that does not use Recvmsg, or that does not use Go at all, that code +// will need to be written to expect and ignore the additional '\0'. +// +// If you need to send non-empty oob with p actually empty, and if the +// underlying socket type supports it, you can do so via a raw system call as +// follows: +// +// msg := &unix.Msghdr{ +// Control: &oob[0], +// } +// msg.SetControllen(len(oob)) +// n, _, errno := unix.Syscall(unix.SYS_SENDMSG, uintptr(fd), uintptr(unsafe.Pointer(msg)), flags) func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { var iov [1]Iovec if len(p) > 0 { @@ -394,9 +430,8 @@ func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) } // SendmsgBuffers sends a message on a socket to an address using the sendmsg -// system call. The flags are passed to sendmsg. Any non-control data written -// is gathered from buffers. The function returns the number of bytes written -// to the socket. +// system call. This function is equivalent to SendmsgN, but the non-control +// data is gathered from buffers. func SendmsgBuffers(fd int, buffers [][]byte, oob []byte, to Sockaddr, flags int) (n int, err error) { iov := make([]Iovec, len(buffers)) for i := range buffers { @@ -543,7 +578,7 @@ func Lutimes(path string, tv []Timeval) error { return UtimesNanoAt(AT_FDCWD, path, ts, AT_SYMLINK_NOFOLLOW) } -// emptyIovec reports whether there are no bytes in the slice of Iovec. +// emptyIovecs reports whether there are no bytes in the slice of Iovec. func emptyIovecs(iov []Iovec) bool { for i := range iov { if iov[i].Len > 0 { diff --git a/vendor/golang.org/x/sys/unix/timestruct.go b/vendor/golang.org/x/sys/unix/timestruct.go index 3d8930405..616b1b284 100644 --- a/vendor/golang.org/x/sys/unix/timestruct.go +++ b/vendor/golang.org/x/sys/unix/timestruct.go @@ -9,7 +9,7 @@ package unix import "time" -// TimespecToNSec returns the time stored in ts as nanoseconds. +// TimespecToNsec returns the time stored in ts as nanoseconds. func TimespecToNsec(ts Timespec) int64 { return ts.Nano() } // NsecToTimespec converts a number of nanoseconds into a Timespec. diff --git a/vendor/golang.org/x/sys/unix/xattr_bsd.go b/vendor/golang.org/x/sys/unix/xattr_bsd.go index 663b3779d..f5f8e9f36 100644 --- a/vendor/golang.org/x/sys/unix/xattr_bsd.go +++ b/vendor/golang.org/x/sys/unix/xattr_bsd.go @@ -36,9 +36,14 @@ func xattrnamespace(fullattr string) (ns int, attr string, err error) { func initxattrdest(dest []byte, idx int) (d unsafe.Pointer) { if len(dest) > idx { return unsafe.Pointer(&dest[idx]) - } else { - return unsafe.Pointer(_zero) } + if dest != nil { + // extattr_get_file and extattr_list_file treat NULL differently from + // a non-NULL pointer of length zero. Preserve the property of nilness, + // even if we can't use dest directly. + return unsafe.Pointer(&_zero) + } + return nil } // FreeBSD and NetBSD implement their own syscalls to handle extended attributes diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go index 785d693eb..e174685ad 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go @@ -457,7 +457,6 @@ const ( B600 = 0x8 B75 = 0x2 B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 BDEVFS_MAGIC = 0x62646576 BINDERFS_SUPER_MAGIC = 0x6c6f6f70 BINFMTFS_MAGIC = 0x42494e4d @@ -563,6 +562,7 @@ const ( BUS_USB = 0x3 BUS_VIRTUAL = 0x6 CAN_BCM = 0x2 + CAN_BUS_OFF_THRESHOLD = 0x100 CAN_CTRLMODE_3_SAMPLES = 0x4 CAN_CTRLMODE_BERR_REPORTING = 0x10 CAN_CTRLMODE_CC_LEN8_DLC = 0x100 @@ -577,9 +577,12 @@ const ( CAN_EFF_FLAG = 0x80000000 CAN_EFF_ID_BITS = 0x1d CAN_EFF_MASK = 0x1fffffff + CAN_ERROR_PASSIVE_THRESHOLD = 0x80 + CAN_ERROR_WARNING_THRESHOLD = 0x60 CAN_ERR_ACK = 0x20 CAN_ERR_BUSERROR = 0x80 CAN_ERR_BUSOFF = 0x40 + CAN_ERR_CNT = 0x200 CAN_ERR_CRTL = 0x4 CAN_ERR_CRTL_ACTIVE = 0x40 CAN_ERR_CRTL_RX_OVERFLOW = 0x1 @@ -820,9 +823,9 @@ const ( DM_UUID_FLAG = 0x4000 DM_UUID_LEN = 0x81 DM_VERSION = 0xc138fd00 - DM_VERSION_EXTRA = "-ioctl (2022-02-22)" + DM_VERSION_EXTRA = "-ioctl (2022-07-28)" DM_VERSION_MAJOR = 0x4 - DM_VERSION_MINOR = 0x2e + DM_VERSION_MINOR = 0x2f DM_VERSION_PATCHLEVEL = 0x0 DT_BLK = 0x6 DT_CHR = 0x2 @@ -1049,6 +1052,7 @@ const ( ETH_P_CAIF = 0xf7 ETH_P_CAN = 0xc ETH_P_CANFD = 0xd + ETH_P_CANXL = 0xe ETH_P_CFM = 0x8902 ETH_P_CONTROL = 0x16 ETH_P_CUST = 0x6006 @@ -1060,6 +1064,7 @@ const ( ETH_P_DNA_RT = 0x6003 ETH_P_DSA = 0x1b ETH_P_DSA_8021Q = 0xdadb + ETH_P_DSA_A5PSW = 0xe001 ETH_P_ECONET = 0x18 ETH_P_EDSA = 0xdada ETH_P_ERSPAN = 0x88be @@ -1194,8 +1199,10 @@ const ( FAN_MARK_EVICTABLE = 0x200 FAN_MARK_FILESYSTEM = 0x100 FAN_MARK_FLUSH = 0x80 + FAN_MARK_IGNORE = 0x400 FAN_MARK_IGNORED_MASK = 0x20 FAN_MARK_IGNORED_SURV_MODIFY = 0x40 + FAN_MARK_IGNORE_SURV = 0x440 FAN_MARK_INODE = 0x0 FAN_MARK_MOUNT = 0x10 FAN_MARK_ONLYDIR = 0x8 @@ -1253,6 +1260,7 @@ const ( FSCRYPT_MODE_AES_128_CBC = 0x5 FSCRYPT_MODE_AES_128_CTS = 0x6 FSCRYPT_MODE_AES_256_CTS = 0x4 + FSCRYPT_MODE_AES_256_HCTR2 = 0xa FSCRYPT_MODE_AES_256_XTS = 0x1 FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2 FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3 @@ -1430,6 +1438,7 @@ const ( IFF_NOARP = 0x80 IFF_NOFILTER = 0x1000 IFF_NOTRAILERS = 0x20 + IFF_NO_CARRIER = 0x40 IFF_NO_PI = 0x1000 IFF_ONE_QUEUE = 0x2000 IFF_PERSIST = 0x800 @@ -1805,6 +1814,7 @@ const ( MADV_DONTDUMP = 0x10 MADV_DONTFORK = 0xa MADV_DONTNEED = 0x4 + MADV_DONTNEED_LOCKED = 0x18 MADV_FREE = 0x8 MADV_HUGEPAGE = 0xe MADV_HWPOISON = 0x64 @@ -1846,7 +1856,7 @@ const ( MFD_ALLOW_SEALING = 0x2 MFD_CLOEXEC = 0x1 MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 + MFD_HUGE_16GB = 0x88000000 MFD_HUGE_16MB = 0x60000000 MFD_HUGE_1GB = 0x78000000 MFD_HUGE_1MB = 0x50000000 @@ -2212,6 +2222,11 @@ const ( PERF_AUX_FLAG_PARTIAL = 0x4 PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK = 0xff00 PERF_AUX_FLAG_TRUNCATED = 0x1 + PERF_BR_ARM64_DEBUG_DATA = 0x7 + PERF_BR_ARM64_DEBUG_EXIT = 0x5 + PERF_BR_ARM64_DEBUG_HALT = 0x4 + PERF_BR_ARM64_DEBUG_INST = 0x6 + PERF_BR_ARM64_FIQ = 0x3 PERF_FLAG_FD_CLOEXEC = 0x8 PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_OUTPUT = 0x2 @@ -2232,6 +2247,8 @@ const ( PERF_MEM_LOCK_NA = 0x1 PERF_MEM_LOCK_SHIFT = 0x18 PERF_MEM_LVLNUM_ANY_CACHE = 0xb + PERF_MEM_LVLNUM_CXL = 0x9 + PERF_MEM_LVLNUM_IO = 0xa PERF_MEM_LVLNUM_L1 = 0x1 PERF_MEM_LVLNUM_L2 = 0x2 PERF_MEM_LVLNUM_L3 = 0x3 @@ -2265,6 +2282,7 @@ const ( PERF_MEM_REMOTE_REMOTE = 0x1 PERF_MEM_REMOTE_SHIFT = 0x25 PERF_MEM_SNOOPX_FWD = 0x1 + PERF_MEM_SNOOPX_PEER = 0x2 PERF_MEM_SNOOPX_SHIFT = 0x26 PERF_MEM_SNOOP_HIT = 0x4 PERF_MEM_SNOOP_HITM = 0x10 @@ -2301,7 +2319,6 @@ const ( PERF_SAMPLE_BRANCH_PLM_ALL = 0x7 PERF_SAMPLE_WEIGHT_TYPE = 0x1004000 PIPEFS_MAGIC = 0x50495045 - PPC_CMM_MAGIC = 0xc7571590 PPPIOCGNPMODE = 0xc008744c PPPIOCNEWUNIT = 0xc004743e PRIO_PGRP = 0x1 @@ -2999,6 +3016,7 @@ const ( STATX_BLOCKS = 0x400 STATX_BTIME = 0x800 STATX_CTIME = 0x80 + STATX_DIOALIGN = 0x2000 STATX_GID = 0x10 STATX_INO = 0x100 STATX_MNT_ID = 0x1000 @@ -3392,9 +3410,7 @@ const ( XDP_ZEROCOPY = 0x4 XENFS_SUPER_MAGIC = 0xabba1974 XFS_SUPER_MAGIC = 0x58465342 - Z3FOLD_MAGIC = 0x33 ZONEFS_MAGIC = 0x5a4f4653 - ZSMALLOC_MAGIC = 0x58295829 _HIDIOCGRAWNAME_LEN = 0x80 _HIDIOCGRAWPHYS_LEN = 0x40 _HIDIOCGRAWUNIQ_LEN = 0x40 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go index 36c0dfc7c..a46df0f1e 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go @@ -133,6 +133,7 @@ const ( MEMGETREGIONCOUNT = 0x80044d07 MEMISLOCKED = 0x80084d17 MEMLOCK = 0x40084d05 + MEMREAD = 0xc03c4d1a MEMREADOOB = 0xc00c4d04 MEMSETBADBLOCK = 0x40084d0c MEMUNLOCK = 0x40084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go index 4ff942703..6cd4a3ea9 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go @@ -133,6 +133,7 @@ const ( MEMGETREGIONCOUNT = 0x80044d07 MEMISLOCKED = 0x80084d17 MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x40084d0c MEMUNLOCK = 0x40084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go index 3eaa0fb78..c7ebee24d 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x80044d07 MEMISLOCKED = 0x80084d17 MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc00c4d04 MEMSETBADBLOCK = 0x40084d0c MEMUNLOCK = 0x40084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go index d7995bdc3..9d5352c3e 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go @@ -134,6 +134,7 @@ const ( MEMGETREGIONCOUNT = 0x80044d07 MEMISLOCKED = 0x80084d17 MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x40084d0c MEMUNLOCK = 0x40084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go index 928e24c20..f26a164f4 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go @@ -132,6 +132,7 @@ const ( MEMGETREGIONCOUNT = 0x80044d07 MEMISLOCKED = 0x80084d17 MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x40084d0c MEMUNLOCK = 0x40084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go index 179bffb47..890bc3c9b 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x40044d07 MEMISLOCKED = 0x40084d17 MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc00c4d04 MEMSETBADBLOCK = 0x80084d0c MEMUNLOCK = 0x80084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go index 1fba17bd7..549f26ac6 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x40044d07 MEMISLOCKED = 0x40084d17 MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x80084d0c MEMUNLOCK = 0x80084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go index b77dde315..e0365e32c 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x40044d07 MEMISLOCKED = 0x40084d17 MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x80084d0c MEMUNLOCK = 0x80084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go index 78c6c751b..fdccce15c 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x40044d07 MEMISLOCKED = 0x40084d17 MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc00c4d04 MEMSETBADBLOCK = 0x80084d0c MEMUNLOCK = 0x80084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go index 1c0d31f0b..b2205c83f 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x40044d07 MEMISLOCKED = 0x40084d17 MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc00c4d04 MEMSETBADBLOCK = 0x80084d0c MEMUNLOCK = 0x80084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go index 959dd9bb8..81aa5ad0f 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x40044d07 MEMISLOCKED = 0x40084d17 MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x80084d0c MEMUNLOCK = 0x80084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go index 5a873cdbc..76807a1fd 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x40044d07 MEMISLOCKED = 0x40084d17 MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x80084d0c MEMUNLOCK = 0x80084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go index e336d141e..d4a5ab9e4 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x80044d07 MEMISLOCKED = 0x80084d17 MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x40084d0c MEMUNLOCK = 0x40084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go index 390c01d92..66e65db95 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x80044d07 MEMISLOCKED = 0x80084d17 MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x40084d0c MEMUNLOCK = 0x40084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go index 98a6e5f11..f61925269 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go @@ -136,6 +136,7 @@ const ( MEMGETREGIONCOUNT = 0x40044d07 MEMISLOCKED = 0x40084d17 MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x80084d0c MEMUNLOCK = 0x80084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go index 6d56edc05..af20e474b 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go @@ -46,6 +46,7 @@ const ( AF_SNA = 0xb AF_UNIX = 0x1 AF_UNSPEC = 0x0 + ALTWERASE = 0x200 ARPHRD_ETHER = 0x1 ARPHRD_FRELAY = 0xf ARPHRD_IEEE1394 = 0x18 @@ -108,6 +109,15 @@ const ( BPF_DIRECTION_IN = 0x1 BPF_DIRECTION_OUT = 0x2 BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -136,6 +146,7 @@ const ( BPF_OR = 0x40 BPF_RELEASE = 0x30bb6 BPF_RET = 0x6 + BPF_RND = 0xc0 BPF_RSH = 0x70 BPF_ST = 0x2 BPF_STX = 0x3 @@ -147,6 +158,12 @@ const ( BRKINT = 0x2 CFLUSH = 0xf CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x6 + CLOCK_MONOTONIC = 0x3 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x4 + CLOCK_UPTIME = 0x5 CPUSTATES = 0x6 CP_IDLE = 0x5 CP_INTR = 0x4 @@ -170,7 +187,65 @@ const ( CTL_KERN = 0x1 CTL_MAXNAME = 0xc CTL_NET = 0x4 + DIOCADDQUEUE = 0xc100445d + DIOCADDRULE = 0xccc84404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xccc8441a + DIOCCLRIFFLAG = 0xc024445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0d04412 + DIOCCLRSTATUS = 0xc0244416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1084460 + DIOCGETQUEUE = 0xc100445f + DIOCGETQUEUES = 0xc100445e + DIOCGETRULE = 0xccc84407 + DIOCGETRULES = 0xccc84406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0084454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0084419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0244457 + DIOCKILLSRCNODES = 0xc068445b + DIOCKILLSTATES = 0xc0d04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc084444f DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0844450 + DIOCRADDADDRS = 0xc44c4443 + DIOCRADDTABLES = 0xc44c443d + DIOCRCLRADDRS = 0xc44c4442 + DIOCRCLRASTATS = 0xc44c4448 + DIOCRCLRTABLES = 0xc44c443c + DIOCRCLRTSTATS = 0xc44c4441 + DIOCRDELADDRS = 0xc44c4444 + DIOCRDELTABLES = 0xc44c443e + DIOCRGETADDRS = 0xc44c4446 + DIOCRGETASTATS = 0xc44c4447 + DIOCRGETTABLES = 0xc44c443f + DIOCRGETTSTATS = 0xc44c4440 + DIOCRINADEFINE = 0xc44c444d + DIOCRSETADDRS = 0xc44c4445 + DIOCRSETTFLAGS = 0xc44c444a + DIOCRTSTADDRS = 0xc44c4449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0244459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0244414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc00c4451 + DIOCXCOMMIT = 0xc00c4452 + DIOCXROLLBACK = 0xc00c4453 DLT_ARCNET = 0x7 DLT_ATM_RFC1483 = 0xb DLT_AX25 = 0x3 @@ -186,6 +261,7 @@ const ( DLT_LOOP = 0xc DLT_MPLS = 0xdb DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b DLT_PFLOG = 0x75 DLT_PFSYNC = 0x12 DLT_PPP = 0x9 @@ -196,6 +272,23 @@ const ( DLT_RAW = 0xe DLT_SLIP = 0x8 DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c DT_BLK = 0x6 DT_CHR = 0x2 DT_DIR = 0x4 @@ -215,6 +308,8 @@ const ( EMUL_ENABLED = 0x1 EMUL_NATIVE = 0x2 ENDRUNDISC = 0x9 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 ETHERMIN = 0x2e ETHERMTU = 0x5dc ETHERTYPE_8023 = 0x4 @@ -267,6 +362,7 @@ const ( ETHERTYPE_DN = 0x6003 ETHERTYPE_DOGFIGHT = 0x1989 ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_EAPOL = 0x888e ETHERTYPE_ECMA = 0x803 ETHERTYPE_ENCRYPT = 0x803d ETHERTYPE_ES = 0x805d @@ -298,6 +394,7 @@ const ( ETHERTYPE_LLDP = 0x88cc ETHERTYPE_LOGICRAFT = 0x8148 ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 ETHERTYPE_MATRA = 0x807a ETHERTYPE_MAX = 0xffff ETHERTYPE_MERIT = 0x807c @@ -326,15 +423,17 @@ const ( ETHERTYPE_NCD = 0x8149 ETHERTYPE_NESTAR = 0x8006 ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NHRP = 0x2001 ETHERTYPE_NOVELL = 0x8138 ETHERTYPE_NS = 0x600 ETHERTYPE_NSAT = 0x601 ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f ETHERTYPE_NTRAILER = 0x10 ETHERTYPE_OS9 = 0x7007 ETHERTYPE_OS9NET = 0x7009 ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e + ETHERTYPE_PBB = 0x88e7 ETHERTYPE_PCS = 0x4242 ETHERTYPE_PLANNING = 0x8044 ETHERTYPE_PPP = 0x880b @@ -409,28 +508,40 @@ const ( ETHER_CRC_POLY_LE = 0xedb88320 ETHER_HDR_LEN = 0xe ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b ETHER_MAX_LEN = 0x5ee ETHER_MIN_LEN = 0x40 ETHER_TYPE_LEN = 0x2 ETHER_VLAN_ENCAP_LEN = 0x4 EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_EXCEPT = -0x9 EVFILT_PROC = -0x5 EVFILT_READ = -0x1 EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x7 + EVFILT_SYSCOUNT = 0x9 EVFILT_TIMER = -0x7 EVFILT_VNODE = -0x4 EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 EV_ADD = 0x1 EV_CLEAR = 0x20 EV_DELETE = 0x2 EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 EV_ENABLE = 0x4 EV_EOF = 0x8000 EV_ERROR = 0x4000 EV_FLAG1 = 0x2000 EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf800 EXTA = 0x4b00 EXTB = 0x9600 EXTPROC = 0x800 @@ -443,6 +554,7 @@ const ( F_GETFL = 0x3 F_GETLK = 0x7 F_GETOWN = 0x5 + F_ISATTY = 0xb F_OK = 0x0 F_RDLCK = 0x1 F_SETFD = 0x2 @@ -460,7 +572,6 @@ const ( IEXTEN = 0x400 IFAN_ARRIVAL = 0x0 IFAN_DEPARTURE = 0x1 - IFA_ROUTE = 0x1 IFF_ALLMULTI = 0x200 IFF_BROADCAST = 0x2 IFF_CANTCHANGE = 0x8e52 @@ -471,12 +582,12 @@ const ( IFF_LOOPBACK = 0x8 IFF_MULTICAST = 0x8000 IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 IFF_OACTIVE = 0x400 IFF_POINTOPOINT = 0x10 IFF_PROMISC = 0x100 IFF_RUNNING = 0x40 IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 IFF_UP = 0x1 IFNAMSIZ = 0x10 IFT_1822 = 0x2 @@ -605,6 +716,7 @@ const ( IFT_LINEGROUP = 0xd2 IFT_LOCALTALK = 0x2a IFT_LOOP = 0x18 + IFT_MBIM = 0xfa IFT_MEDIAMAILOVERIP = 0x8b IFT_MFSIGLINK = 0xa7 IFT_MIOX25 = 0x26 @@ -695,6 +807,7 @@ const ( IFT_VOICEOVERCABLE = 0xc6 IFT_VOICEOVERFRAMERELAY = 0x99 IFT_VOICEOVERIP = 0x68 + IFT_WIREGUARD = 0xfb IFT_X213 = 0x5d IFT_X25 = 0x5 IFT_X25DDN = 0x4 @@ -729,8 +842,6 @@ const ( IPPROTO_AH = 0x33 IPPROTO_CARP = 0x70 IPPROTO_DIVERT = 0x102 - IPPROTO_DIVERT_INIT = 0x2 - IPPROTO_DIVERT_RESP = 0x1 IPPROTO_DONE = 0x101 IPPROTO_DSTOPTS = 0x3c IPPROTO_EGP = 0x8 @@ -762,9 +873,11 @@ const ( IPPROTO_RAW = 0xff IPPROTO_ROUTING = 0x2b IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 IPPROTO_TCP = 0x6 IPPROTO_TP = 0x1d IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 IPV6_AUTH_LEVEL = 0x35 IPV6_AUTOFLOWLABEL = 0x3b IPV6_CHECKSUM = 0x1a @@ -787,6 +900,7 @@ const ( IPV6_LEAVE_GROUP = 0xd IPV6_MAXHLIM = 0xff IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 IPV6_MMTU = 0x500 IPV6_MULTICAST_HOPS = 0xa IPV6_MULTICAST_IF = 0x9 @@ -826,12 +940,12 @@ const ( IP_DEFAULT_MULTICAST_LOOP = 0x1 IP_DEFAULT_MULTICAST_TTL = 0x1 IP_DF = 0x4000 - IP_DIVERTFL = 0x1022 IP_DROP_MEMBERSHIP = 0xd IP_ESP_NETWORK_LEVEL = 0x16 IP_ESP_TRANS_LEVEL = 0x15 IP_HDRINCL = 0x2 IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 IP_IPSECFLOWINFO = 0x24 IP_IPSEC_LOCAL_AUTH = 0x1b IP_IPSEC_LOCAL_CRED = 0x19 @@ -865,10 +979,15 @@ const ( IP_RETOPTS = 0x8 IP_RF = 0x8000 IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 IP_TOS = 0x3 IP_TTL = 0x4 ISIG = 0x80 ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IUCLC = 0x1000 IXANY = 0x800 IXOFF = 0x400 IXON = 0x200 @@ -900,10 +1019,11 @@ const ( MAP_INHERIT_COPY = 0x1 MAP_INHERIT_NONE = 0x2 MAP_INHERIT_SHARE = 0x0 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 + MAP_RENAME = 0x0 MAP_SHARED = 0x1 MAP_STACK = 0x4000 MAP_TRYFIXED = 0x0 @@ -922,6 +1042,7 @@ const ( MNT_NOATIME = 0x8000 MNT_NODEV = 0x10 MNT_NOEXEC = 0x4 + MNT_NOPERM = 0x20 MNT_NOSUID = 0x8 MNT_NOWAIT = 0x2 MNT_QUOTA = 0x2000 @@ -929,13 +1050,29 @@ const ( MNT_RELOAD = 0x40000 MNT_ROOTFS = 0x4000 MNT_SOFTDEP = 0x4000000 + MNT_STALLED = 0x100000 + MNT_SWAPPABLE = 0x200000 MNT_SYNCHRONOUS = 0x2 MNT_UPDATE = 0x10000 MNT_VISFLAGMASK = 0x400ffff MNT_WAIT = 0x1 MNT_WANTRDWR = 0x2000000 MNT_WXALLOWED = 0x800 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 MSG_CTRUNC = 0x20 MSG_DONTROUTE = 0x4 MSG_DONTWAIT = 0x80 @@ -946,6 +1083,7 @@ const ( MSG_PEEK = 0x2 MSG_TRUNC = 0x10 MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x1000 MS_ASYNC = 0x1 MS_INVALIDATE = 0x4 MS_SYNC = 0x2 @@ -953,12 +1091,16 @@ const ( NET_RT_DUMP = 0x1 NET_RT_FLAGS = 0x2 NET_RT_IFLIST = 0x3 - NET_RT_MAXID = 0x6 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x8 + NET_RT_SOURCE = 0x7 NET_RT_STATS = 0x4 NET_RT_TABLE = 0x5 NFDBITS = 0x20 NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 NOTE_CHILD = 0x4 NOTE_DELETE = 0x1 NOTE_EOF = 0x2 @@ -968,6 +1110,7 @@ const ( NOTE_FORK = 0x40000000 NOTE_LINK = 0x10 NOTE_LOWAT = 0x1 + NOTE_OOB = 0x4 NOTE_PCTRLMASK = 0xf0000000 NOTE_PDATAMASK = 0xfffff NOTE_RENAME = 0x20 @@ -977,11 +1120,13 @@ const ( NOTE_TRUNCATE = 0x80 NOTE_WRITE = 0x2 OCRNL = 0x10 + OLCUC = 0x20 ONLCR = 0x2 ONLRET = 0x80 ONOCR = 0x40 ONOEOT = 0x8 OPOST = 0x1 + OXTABS = 0x4 O_ACCMODE = 0x3 O_APPEND = 0x8 O_ASYNC = 0x40 @@ -1015,7 +1160,6 @@ const ( PROT_NONE = 0x0 PROT_READ = 0x1 PROT_WRITE = 0x2 - PT_MASK = 0x3ff000 RLIMIT_CORE = 0x4 RLIMIT_CPU = 0x0 RLIMIT_DATA = 0x2 @@ -1027,19 +1171,25 @@ const ( RLIMIT_STACK = 0x3 RLIM_INFINITY = 0x7fffffffffffffff RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb RTAX_BRD = 0x7 + RTAX_DNS = 0xc RTAX_DST = 0x0 RTAX_GATEWAY = 0x1 RTAX_GENMASK = 0x3 RTAX_IFA = 0x5 RTAX_IFP = 0x4 RTAX_LABEL = 0xa - RTAX_MAX = 0xb + RTAX_MAX = 0xf RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe RTAX_SRC = 0x8 RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 RTA_BRD = 0x80 + RTA_DNS = 0x1000 RTA_DST = 0x1 RTA_GATEWAY = 0x2 RTA_GENMASK = 0x8 @@ -1047,49 +1197,57 @@ const ( RTA_IFP = 0x10 RTA_LABEL = 0x400 RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 RTA_SRC = 0x100 RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 RTF_CLONED = 0x10000 RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 RTF_DONE = 0x40 RTF_DYNAMIC = 0x10 - RTF_FMASK = 0x10f808 + RTF_FMASK = 0x110fc08 RTF_GATEWAY = 0x2 RTF_HOST = 0x4 RTF_LLINFO = 0x400 - RTF_MASK = 0x80 + RTF_LOCAL = 0x200000 RTF_MODIFIED = 0x20 RTF_MPATH = 0x40000 RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 RTF_PERMANENT_ARP = 0x2000 RTF_PROTO1 = 0x8000 RTF_PROTO2 = 0x4000 RTF_PROTO3 = 0x2000 RTF_REJECT = 0x8 - RTF_SOURCE = 0x20000 RTF_STATIC = 0x800 - RTF_TUNNEL = 0x100000 RTF_UP = 0x1 RTF_USETRAILERS = 0x8000 - RTF_XRESOLVE = 0x200 + RTM_80211INFO = 0x15 RTM_ADD = 0x1 + RTM_BFD = 0x12 RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 RTM_DELADDR = 0xd RTM_DELETE = 0x2 RTM_DESYNC = 0x10 RTM_GET = 0x4 RTM_IFANNOUNCE = 0xf RTM_IFINFO = 0xe - RTM_LOCK = 0x8 + RTM_INVALIDATE = 0x11 RTM_LOSING = 0x5 RTM_MAXSIZE = 0x800 RTM_MISS = 0x7 RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 RTM_REDIRECT = 0x6 RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 + RTM_SOURCE = 0x16 RTM_VERSION = 0x5 RTV_EXPIRE = 0x4 RTV_HOPCOUNT = 0x2 @@ -1099,67 +1257,74 @@ const ( RTV_RTTVAR = 0x80 RTV_SPIPE = 0x10 RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff RT_TABLEID_MAX = 0xff RUSAGE_CHILDREN = -0x1 RUSAGE_SELF = 0x0 RUSAGE_THREAD = 0x1 SCM_RIGHTS = 0x1 SCM_TIMESTAMP = 0x4 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 SIOCADDMULTI = 0x80206931 SIOCAIFADDR = 0x8040691a SIOCAIFGROUP = 0x80246987 - SIOCALIFADDR = 0x8218691c SIOCATMARK = 0x40047307 - SIOCBRDGADD = 0x8054693c - SIOCBRDGADDS = 0x80546941 - SIOCBRDGARL = 0x806e694d + SIOCBRDGADD = 0x805c693c + SIOCBRDGADDL = 0x805c6949 + SIOCBRDGADDS = 0x805c6941 + SIOCBRDGARL = 0x808c694d SIOCBRDGDADDR = 0x81286947 - SIOCBRDGDEL = 0x8054693d - SIOCBRDGDELS = 0x80546942 - SIOCBRDGFLUSH = 0x80546948 - SIOCBRDGFRL = 0x806e694e + SIOCBRDGDEL = 0x805c693d + SIOCBRDGDELS = 0x805c6942 + SIOCBRDGFLUSH = 0x805c6948 + SIOCBRDGFRL = 0x808c694e SIOCBRDGGCACHE = 0xc0146941 SIOCBRDGGFD = 0xc0146952 SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc054693e + SIOCBRDGGIFFLGS = 0xc05c693e SIOCBRDGGMA = 0xc0146953 SIOCBRDGGPARAM = 0xc03c6958 SIOCBRDGGPRI = 0xc0146950 SIOCBRDGGRL = 0xc028694f - SIOCBRDGGSIFS = 0xc054693c SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0546942 + SIOCBRDGIFS = 0xc05c6942 SIOCBRDGRTS = 0xc0186943 SIOCBRDGSADDR = 0xc1286944 SIOCBRDGSCACHE = 0x80146940 SIOCBRDGSFD = 0x80146952 SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80546955 - SIOCBRDGSIFFLGS = 0x8054693f - SIOCBRDGSIFPRIO = 0x80546954 + SIOCBRDGSIFCOST = 0x805c6955 + SIOCBRDGSIFFLGS = 0x805c693f + SIOCBRDGSIFPRIO = 0x805c6954 + SIOCBRDGSIFPROT = 0x805c694a SIOCBRDGSMA = 0x80146953 SIOCBRDGSPRI = 0x80146950 SIOCBRDGSPROTO = 0x8014695a SIOCBRDGSTO = 0x80146945 SIOCBRDGSTXHC = 0x80146959 + SIOCDELLABEL = 0x80206997 SIOCDELMULTI = 0x80206932 SIOCDIFADDR = 0x80206919 SIOCDIFGROUP = 0x80246989 + SIOCDIFPARENT = 0x802069b4 SIOCDIFPHYADDR = 0x80206949 - SIOCDLIFADDR = 0x8218691e + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af SIOCGETKALIVE = 0xc01869a4 SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae SIOCGETPFLOW = 0xc02069fe SIOCGETPFSYNC = 0xc02069f8 SIOCGETSGCNT = 0xc0147534 SIOCGETVIFCNT = 0xc0147533 SIOCGETVLAN = 0xc0206990 - SIOCGHIWAT = 0x40047301 SIOCGIFADDR = 0xc0206921 - SIOCGIFASYNCMAP = 0xc020697c SIOCGIFBRDADDR = 0xc0206923 SIOCGIFCONF = 0xc0086924 SIOCGIFDATA = 0xc020691b @@ -1168,40 +1333,53 @@ const ( SIOCGIFFLAGS = 0xc0206911 SIOCGIFGATTR = 0xc024698b SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc024698d SIOCGIFGMEMB = 0xc024698a SIOCGIFGROUP = 0xc0246988 SIOCGIFHARDMTU = 0xc02069a5 - SIOCGIFMEDIA = 0xc0286936 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0386938 SIOCGIFMETRIC = 0xc0206917 SIOCGIFMTU = 0xc020697e SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 SIOCGIFPRIORITY = 0xc020699c - SIOCGIFPSRCADDR = 0xc0206947 SIOCGIFRDOMAIN = 0xc02069a0 SIOCGIFRTLABEL = 0xc0206983 - SIOCGIFTIMESLOT = 0xc0206986 + SIOCGIFRXR = 0x802069aa + SIOCGIFSFFPAGE = 0xc1126939 SIOCGIFXFLAGS = 0xc020699e - SIOCGLIFADDR = 0xc218691d SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 SIOCGLIFPHYRTABLE = 0xc02069a2 SIOCGLIFPHYTTL = 0xc02069a9 - SIOCGLOWAT = 0x40047303 SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac SIOCIFCREATE = 0x8020697a SIOCIFDESTROY = 0x80206979 SIOCIFGCLONERS = 0xc00c6978 SIOCSETKALIVE = 0x801869a3 SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad SIOCSETPFLOW = 0x802069fd SIOCSETPFSYNC = 0x802069f7 SIOCSETVLAN = 0x8020698f - SIOCSHIWAT = 0x80047300 SIOCSIFADDR = 0x8020690c - SIOCSIFASYNCMAP = 0x8020697d SIOCSIFBRDADDR = 0x80206913 SIOCSIFDESCR = 0x80206980 SIOCSIFDSTADDR = 0x8020690e @@ -1209,25 +1387,37 @@ const ( SIOCSIFGATTR = 0x8024698c SIOCSIFGENERIC = 0x80206939 SIOCSIFLLADDR = 0x8020691f - SIOCSIFMEDIA = 0xc0206935 + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 SIOCSIFMETRIC = 0x80206918 SIOCSIFMTU = 0x8020697f SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 SIOCSIFPRIORITY = 0x8020699b SIOCSIFRDOMAIN = 0x8020699f SIOCSIFRTLABEL = 0x80206982 - SIOCSIFTIMESLOT = 0x80206985 SIOCSIFXFLAGS = 0x8020699d SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 SIOCSLIFPHYRTABLE = 0x802069a1 SIOCSLIFPHYTTL = 0x802069a8 - SIOCSLOWAT = 0x80047302 SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 + SIOCSUMBPARAM = 0x802069bf SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 SIOCSVNETID = 0x802069a6 + SOCK_CLOEXEC = 0x8000 SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 + SOCK_NONBLOCK = 0x4000 SOCK_RAW = 0x3 SOCK_RDM = 0x4 SOCK_SEQPACKET = 0x5 @@ -1238,6 +1428,7 @@ const ( SO_BINDANY = 0x1000 SO_BROADCAST = 0x20 SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 SO_DONTROUTE = 0x10 SO_ERROR = 0x1007 SO_KEEPALIVE = 0x8 @@ -1245,6 +1436,7 @@ const ( SO_NETPROC = 0x1020 SO_OOBINLINE = 0x100 SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 SO_RCVBUF = 0x1002 SO_RCVLOWAT = 0x1004 SO_RCVTIMEO = 0x1006 @@ -1258,6 +1450,7 @@ const ( SO_TIMESTAMP = 0x800 SO_TYPE = 0x1008 SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 S_BLKSIZE = 0x200 S_IEXEC = 0x40 S_IFBLK = 0x6000 @@ -1287,9 +1480,24 @@ const ( S_IXOTH = 0x1 S_IXUSR = 0x40 TCIFLUSH = 0x1 + TCIOFF = 0x3 TCIOFLUSH = 0x3 + TCION = 0x4 TCOFLUSH = 0x2 - TCP_MAXBURST = 0x4 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 TCP_MAXSEG = 0x2 TCP_MAXWIN = 0xffff TCP_MAX_SACK = 0x3 @@ -1298,11 +1506,15 @@ const ( TCP_MSS = 0x200 TCP_NODELAY = 0x1 TCP_NOPUSH = 0x10 - TCP_NSTATES = 0xb + TCP_SACKHOLE_LIMIT = 0x80 TCP_SACK_ENABLE = 0x8 TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 TIOCCBRK = 0x2000747a TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d TIOCCONS = 0x80047462 TIOCDRAIN = 0x2000745e TIOCEXCL = 0x2000740d @@ -1357,17 +1569,21 @@ const ( TIOCSETAF = 0x802c7416 TIOCSETAW = 0x802c7415 TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c TIOCSFLAGS = 0x8004745c TIOCSIG = 0x8004745f TIOCSPGRP = 0x80047476 TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 + TIOCSTAT = 0x20007465 TIOCSTOP = 0x2000746f TIOCSTSTAMP = 0x8008745a TIOCSWINSZ = 0x80087467 TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b TOSTOP = 0x400000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x1 VDISCARD = 0xf VDSUSP = 0xb VEOF = 0x0 @@ -1378,6 +1594,19 @@ const ( VKILL = 0x5 VLNEXT = 0xe VMIN = 0x10 + VM_ANONMIN = 0x7 + VM_LOADAVG = 0x2 + VM_MALLOC_CONF = 0xc + VM_MAXID = 0xd + VM_MAXSLP = 0xa + VM_METER = 0x1 + VM_NKMEMPAGES = 0x6 + VM_PSSTRINGS = 0x3 + VM_SWAPENCRYPT = 0x5 + VM_USPACE = 0xb + VM_UVMEXP = 0x4 + VM_VNODEMIN = 0x9 + VM_VTEXTMIN = 0x8 VQUIT = 0x9 VREPRINT = 0x6 VSTART = 0xc @@ -1390,8 +1619,8 @@ const ( WCONTINUED = 0x8 WCOREFLAG = 0x80 WNOHANG = 0x1 - WSTOPPED = 0x7f WUNTRACED = 0x2 + XCASE = 0x1000000 ) // Errors @@ -1405,6 +1634,7 @@ const ( EALREADY = syscall.Errno(0x25) EAUTH = syscall.Errno(0x50) EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x5c) EBADRPC = syscall.Errno(0x48) EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x58) @@ -1431,7 +1661,7 @@ const ( EIPSEC = syscall.Errno(0x52) EISCONN = syscall.Errno(0x38) EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x5b) + ELAST = syscall.Errno(0x5f) ELOOP = syscall.Errno(0x3e) EMEDIUMTYPE = syscall.Errno(0x56) EMFILE = syscall.Errno(0x18) @@ -1459,12 +1689,14 @@ const ( ENOTCONN = syscall.Errno(0x39) ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5d) ENOTSOCK = syscall.Errno(0x26) ENOTSUP = syscall.Errno(0x5b) ENOTTY = syscall.Errno(0x19) ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x2d) EOVERFLOW = syscall.Errno(0x57) + EOWNERDEAD = syscall.Errno(0x5e) EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x2e) EPIPE = syscall.Errno(0x20) @@ -1472,6 +1704,7 @@ const ( EPROCUNAVAIL = syscall.Errno(0x4c) EPROGMISMATCH = syscall.Errno(0x4b) EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5f) EPROTONOSUPPORT = syscall.Errno(0x2b) EPROTOTYPE = syscall.Errno(0x29) ERANGE = syscall.Errno(0x22) @@ -1568,7 +1801,7 @@ var errorList = [...]struct { {32, "EPIPE", "broken pipe"}, {33, "EDOM", "numerical argument out of domain"}, {34, "ERANGE", "result too large"}, - {35, "EWOULDBLOCK", "resource temporarily unavailable"}, + {35, "EAGAIN", "resource temporarily unavailable"}, {36, "EINPROGRESS", "operation now in progress"}, {37, "EALREADY", "operation already in progress"}, {38, "ENOTSOCK", "socket operation on non-socket"}, @@ -1624,7 +1857,11 @@ var errorList = [...]struct { {88, "ECANCELED", "operation canceled"}, {89, "EIDRM", "identifier removed"}, {90, "ENOMSG", "no message of desired type"}, - {91, "ELAST", "not supported"}, + {91, "ENOTSUP", "not supported"}, + {92, "EBADMSG", "bad message"}, + {93, "ENOTRECOVERABLE", "state not recoverable"}, + {94, "EOWNERDEAD", "previous owner died"}, + {95, "ELAST", "protocol error"}, } // Signal table @@ -1638,7 +1875,7 @@ var signalList = [...]struct { {3, "SIGQUIT", "quit"}, {4, "SIGILL", "illegal instruction"}, {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGABRT", "abort trap"}, + {6, "SIGIOT", "abort trap"}, {7, "SIGEMT", "EMT trap"}, {8, "SIGFPE", "floating point exception"}, {9, "SIGKILL", "killed"}, @@ -1665,4 +1902,5 @@ var signalList = [...]struct { {30, "SIGUSR1", "user defined signal 1"}, {31, "SIGUSR2", "user defined signal 2"}, {32, "SIGTHR", "thread AST"}, + {28672, "SIGSTKSZ", "unknown signal"}, } diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go index 25cb60948..6015fcb2b 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go @@ -109,6 +109,15 @@ const ( BPF_DIRECTION_IN = 0x1 BPF_DIRECTION_OUT = 0x2 BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -137,6 +146,7 @@ const ( BPF_OR = 0x40 BPF_RELEASE = 0x30bb6 BPF_RET = 0x6 + BPF_RND = 0xc0 BPF_RSH = 0x70 BPF_ST = 0x2 BPF_STX = 0x3 @@ -177,7 +187,65 @@ const ( CTL_KERN = 0x1 CTL_MAXNAME = 0xc CTL_NET = 0x4 + DIOCADDQUEUE = 0xc110445d + DIOCADDRULE = 0xcd604404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xcd60441a + DIOCCLRIFFLAG = 0xc028445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0e04412 + DIOCCLRSTATUS = 0xc0284416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1204460 + DIOCGETQUEUE = 0xc110445f + DIOCGETQUEUES = 0xc110445e + DIOCGETRULE = 0xcd604407 + DIOCGETRULES = 0xcd604406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0104454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0104419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0284457 + DIOCKILLSRCNODES = 0xc080445b + DIOCKILLSTATES = 0xc0e04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc088444f DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0884450 + DIOCRADDADDRS = 0xc4504443 + DIOCRADDTABLES = 0xc450443d + DIOCRCLRADDRS = 0xc4504442 + DIOCRCLRASTATS = 0xc4504448 + DIOCRCLRTABLES = 0xc450443c + DIOCRCLRTSTATS = 0xc4504441 + DIOCRDELADDRS = 0xc4504444 + DIOCRDELTABLES = 0xc450443e + DIOCRGETADDRS = 0xc4504446 + DIOCRGETASTATS = 0xc4504447 + DIOCRGETTABLES = 0xc450443f + DIOCRGETTSTATS = 0xc4504440 + DIOCRINADEFINE = 0xc450444d + DIOCRSETADDRS = 0xc4504445 + DIOCRSETTFLAGS = 0xc450444a + DIOCRTSTADDRS = 0xc4504449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0284459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0284414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc0104451 + DIOCXCOMMIT = 0xc0104452 + DIOCXROLLBACK = 0xc0104453 DLT_ARCNET = 0x7 DLT_ATM_RFC1483 = 0xb DLT_AX25 = 0x3 @@ -240,6 +308,8 @@ const ( EMUL_ENABLED = 0x1 EMUL_NATIVE = 0x2 ENDRUNDISC = 0x9 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 ETHERMIN = 0x2e ETHERMTU = 0x5dc ETHERTYPE_8023 = 0x4 @@ -292,6 +362,7 @@ const ( ETHERTYPE_DN = 0x6003 ETHERTYPE_DOGFIGHT = 0x1989 ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_EAPOL = 0x888e ETHERTYPE_ECMA = 0x803 ETHERTYPE_ENCRYPT = 0x803d ETHERTYPE_ES = 0x805d @@ -323,6 +394,7 @@ const ( ETHERTYPE_LLDP = 0x88cc ETHERTYPE_LOGICRAFT = 0x8148 ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 ETHERTYPE_MATRA = 0x807a ETHERTYPE_MAX = 0xffff ETHERTYPE_MERIT = 0x807c @@ -351,15 +423,17 @@ const ( ETHERTYPE_NCD = 0x8149 ETHERTYPE_NESTAR = 0x8006 ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NHRP = 0x2001 ETHERTYPE_NOVELL = 0x8138 ETHERTYPE_NS = 0x600 ETHERTYPE_NSAT = 0x601 ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f ETHERTYPE_NTRAILER = 0x10 ETHERTYPE_OS9 = 0x7007 ETHERTYPE_OS9NET = 0x7009 ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e + ETHERTYPE_PBB = 0x88e7 ETHERTYPE_PCS = 0x4242 ETHERTYPE_PLANNING = 0x8044 ETHERTYPE_PPP = 0x880b @@ -441,10 +515,11 @@ const ( ETHER_VLAN_ENCAP_LEN = 0x4 EVFILT_AIO = -0x3 EVFILT_DEVICE = -0x8 + EVFILT_EXCEPT = -0x9 EVFILT_PROC = -0x5 EVFILT_READ = -0x1 EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x8 + EVFILT_SYSCOUNT = 0x9 EVFILT_TIMER = -0x7 EVFILT_VNODE = -0x4 EVFILT_WRITE = -0x2 @@ -466,7 +541,7 @@ const ( EV_FLAG1 = 0x2000 EV_ONESHOT = 0x10 EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 + EV_SYSFLAGS = 0xf800 EXTA = 0x4b00 EXTB = 0x9600 EXTPROC = 0x800 @@ -732,6 +807,7 @@ const ( IFT_VOICEOVERCABLE = 0xc6 IFT_VOICEOVERFRAMERELAY = 0x99 IFT_VOICEOVERIP = 0x68 + IFT_WIREGUARD = 0xfb IFT_X213 = 0x5d IFT_X25 = 0x5 IFT_X25DDN = 0x4 @@ -797,9 +873,11 @@ const ( IPPROTO_RAW = 0xff IPPROTO_ROUTING = 0x2b IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 IPPROTO_TCP = 0x6 IPPROTO_TP = 0x1d IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 IPV6_AUTH_LEVEL = 0x35 IPV6_AUTOFLOWLABEL = 0x3b IPV6_CHECKSUM = 0x1a @@ -906,6 +984,9 @@ const ( IP_TTL = 0x4 ISIG = 0x80 ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 IUCLC = 0x1000 IXANY = 0x800 IXOFF = 0x400 @@ -970,12 +1051,26 @@ const ( MNT_ROOTFS = 0x4000 MNT_SOFTDEP = 0x4000000 MNT_STALLED = 0x100000 + MNT_SWAPPABLE = 0x200000 MNT_SYNCHRONOUS = 0x2 MNT_UPDATE = 0x10000 MNT_VISFLAGMASK = 0x400ffff MNT_WAIT = 0x1 MNT_WANTRDWR = 0x2000000 MNT_WXALLOWED = 0x800 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" MSG_BCAST = 0x100 MSG_CMSG_CLOEXEC = 0x800 MSG_CTRUNC = 0x20 @@ -988,6 +1083,7 @@ const ( MSG_PEEK = 0x2 MSG_TRUNC = 0x10 MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x1000 MS_ASYNC = 0x1 MS_INVALIDATE = 0x4 MS_SYNC = 0x2 @@ -996,7 +1092,8 @@ const ( NET_RT_FLAGS = 0x2 NET_RT_IFLIST = 0x3 NET_RT_IFNAMES = 0x6 - NET_RT_MAXID = 0x7 + NET_RT_MAXID = 0x8 + NET_RT_SOURCE = 0x7 NET_RT_STATS = 0x4 NET_RT_TABLE = 0x5 NFDBITS = 0x20 @@ -1013,6 +1110,7 @@ const ( NOTE_FORK = 0x40000000 NOTE_LINK = 0x10 NOTE_LOWAT = 0x1 + NOTE_OOB = 0x4 NOTE_PCTRLMASK = 0xf0000000 NOTE_PDATAMASK = 0xfffff NOTE_RENAME = 0x20 @@ -1130,9 +1228,11 @@ const ( RTF_STATIC = 0x800 RTF_UP = 0x1 RTF_USETRAILERS = 0x8000 + RTM_80211INFO = 0x15 RTM_ADD = 0x1 RTM_BFD = 0x12 RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 RTM_DELADDR = 0xd RTM_DELETE = 0x2 RTM_DESYNC = 0x10 @@ -1140,7 +1240,6 @@ const ( RTM_IFANNOUNCE = 0xf RTM_IFINFO = 0xe RTM_INVALIDATE = 0x11 - RTM_LOCK = 0x8 RTM_LOSING = 0x5 RTM_MAXSIZE = 0x800 RTM_MISS = 0x7 @@ -1148,7 +1247,7 @@ const ( RTM_PROPOSAL = 0x13 RTM_REDIRECT = 0x6 RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 + RTM_SOURCE = 0x16 RTM_VERSION = 0x5 RTV_EXPIRE = 0x4 RTV_HOPCOUNT = 0x2 @@ -1166,6 +1265,9 @@ const ( RUSAGE_THREAD = 0x1 SCM_RIGHTS = 0x1 SCM_TIMESTAMP = 0x4 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -1182,35 +1284,37 @@ const ( SIOCBRDGDELS = 0x80606942 SIOCBRDGFLUSH = 0x80606948 SIOCBRDGFRL = 0x808c694e - SIOCBRDGGCACHE = 0xc0186941 - SIOCBRDGGFD = 0xc0186952 - SIOCBRDGGHT = 0xc0186951 + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0186953 + SIOCBRDGGMA = 0xc0146953 SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0186950 + SIOCBRDGGPRI = 0xc0146950 SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0186946 + SIOCBRDGGTO = 0xc0146946 SIOCBRDGIFS = 0xc0606942 SIOCBRDGRTS = 0xc0206943 SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80186940 - SIOCBRDGSFD = 0x80186952 - SIOCBRDGSHT = 0x80186951 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 SIOCBRDGSIFCOST = 0x80606955 SIOCBRDGSIFFLGS = 0x8060693f SIOCBRDGSIFPRIO = 0x80606954 SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80186953 - SIOCBRDGSPRI = 0x80186950 - SIOCBRDGSPROTO = 0x8018695a - SIOCBRDGSTO = 0x80186945 - SIOCBRDGSTXHC = 0x80186959 + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + SIOCDELLABEL = 0x80206997 SIOCDELMULTI = 0x80206932 SIOCDIFADDR = 0x80206919 SIOCDIFGROUP = 0x80286989 SIOCDIFPARENT = 0x802069b4 SIOCDIFPHYADDR = 0x80206949 + SIOCDPWE3NEIGHBOR = 0x802069de SIOCDVNETID = 0x802069af SIOCGETKALIVE = 0xc01869a4 SIOCGETLABEL = 0x8020699a @@ -1229,6 +1333,7 @@ const ( SIOCGIFFLAGS = 0xc0206911 SIOCGIFGATTR = 0xc028698b SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc028698d SIOCGIFGMEMB = 0xc028698a SIOCGIFGROUP = 0xc0286988 SIOCGIFHARDMTU = 0xc02069a5 @@ -1243,13 +1348,21 @@ const ( SIOCGIFRDOMAIN = 0xc02069a0 SIOCGIFRTLABEL = 0xc0206983 SIOCGIFRXR = 0x802069aa + SIOCGIFSFFPAGE = 0xc1126939 SIOCGIFXFLAGS = 0xc020699e SIOCGLIFPHYADDR = 0xc218694b SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 SIOCGLIFPHYRTABLE = 0xc02069a2 SIOCGLIFPHYTTL = 0xc02069a9 SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 SIOCGUMBINFO = 0xc02069be SIOCGUMBPARAM = 0xc02069c0 SIOCGVH = 0xc02069f6 @@ -1287,19 +1400,20 @@ const ( SIOCSIFXFLAGS = 0x8020699d SIOCSLIFPHYADDR = 0x8218694a SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 SIOCSLIFPHYRTABLE = 0x802069a1 SIOCSLIFPHYTTL = 0x802069a8 SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 SIOCSUMBPARAM = 0x802069bf SIOCSVH = 0xc02069f5 SIOCSVNETFLOWID = 0x802069c3 SIOCSVNETID = 0x802069a6 - SIOCSWGDPID = 0xc018695b - SIOCSWGMAXFLOW = 0xc0186960 - SIOCSWGMAXGROUP = 0xc018695d - SIOCSWSDPID = 0x8018695c - SIOCSWSPORTNO = 0xc060695f SOCK_CLOEXEC = 0x8000 SOCK_DGRAM = 0x2 SOCK_DNS = 0x1000 @@ -1314,6 +1428,7 @@ const ( SO_BINDANY = 0x1000 SO_BROADCAST = 0x20 SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 SO_DONTROUTE = 0x10 SO_ERROR = 0x1007 SO_KEEPALIVE = 0x8 @@ -1321,6 +1436,7 @@ const ( SO_NETPROC = 0x1020 SO_OOBINLINE = 0x100 SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 SO_RCVBUF = 0x1002 SO_RCVLOWAT = 0x1004 SO_RCVTIMEO = 0x1006 @@ -1370,7 +1486,18 @@ const ( TCOFLUSH = 0x2 TCOOFF = 0x1 TCOON = 0x2 - TCP_MAXBURST = 0x4 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 TCP_MAXSEG = 0x2 TCP_MAXWIN = 0xffff TCP_MAX_SACK = 0x3 @@ -1379,8 +1506,11 @@ const ( TCP_MSS = 0x200 TCP_NODELAY = 0x1 TCP_NOPUSH = 0x10 + TCP_SACKHOLE_LIMIT = 0x80 TCP_SACK_ENABLE = 0x8 TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 TIOCCBRK = 0x2000747a TIOCCDTR = 0x20007478 TIOCCHKVERAUTH = 0x2000741e @@ -1445,7 +1575,6 @@ const ( TIOCSPGRP = 0x80047476 TIOCSTART = 0x2000746e TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 TIOCSTOP = 0x2000746f TIOCSTSTAMP = 0x8008745a TIOCSWINSZ = 0x80087467 @@ -1467,7 +1596,8 @@ const ( VMIN = 0x10 VM_ANONMIN = 0x7 VM_LOADAVG = 0x2 - VM_MAXID = 0xc + VM_MALLOC_CONF = 0xc + VM_MAXID = 0xd VM_MAXSLP = 0xa VM_METER = 0x1 VM_NKMEMPAGES = 0x6 @@ -1745,7 +1875,7 @@ var signalList = [...]struct { {3, "SIGQUIT", "quit"}, {4, "SIGILL", "illegal instruction"}, {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGABRT", "abort trap"}, + {6, "SIGIOT", "abort trap"}, {7, "SIGEMT", "EMT trap"}, {8, "SIGFPE", "floating point exception"}, {9, "SIGKILL", "killed"}, @@ -1772,4 +1902,5 @@ var signalList = [...]struct { {30, "SIGUSR1", "user defined signal 1"}, {31, "SIGUSR2", "user defined signal 2"}, {32, "SIGTHR", "thread AST"}, + {28672, "SIGSTKSZ", "unknown signal"}, } diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go index aef6c0856..8d44955e4 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go @@ -46,6 +46,7 @@ const ( AF_SNA = 0xb AF_UNIX = 0x1 AF_UNSPEC = 0x0 + ALTWERASE = 0x200 ARPHRD_ETHER = 0x1 ARPHRD_FRELAY = 0xf ARPHRD_IEEE1394 = 0x18 @@ -82,7 +83,7 @@ const ( BIOCGFILDROP = 0x40044278 BIOCGHDRCMPLT = 0x40044274 BIOCGRSIG = 0x40044273 - BIOCGRTIMEOUT = 0x400c426e + BIOCGRTIMEOUT = 0x4010426e BIOCGSTATS = 0x4008426f BIOCIMMEDIATE = 0x80044270 BIOCLOCK = 0x20004276 @@ -96,7 +97,7 @@ const ( BIOCSFILDROP = 0x80044279 BIOCSHDRCMPLT = 0x80044275 BIOCSRSIG = 0x80044272 - BIOCSRTIMEOUT = 0x800c426d + BIOCSRTIMEOUT = 0x8010426d BIOCVERSION = 0x40044271 BPF_A = 0x10 BPF_ABS = 0x20 @@ -108,6 +109,15 @@ const ( BPF_DIRECTION_IN = 0x1 BPF_DIRECTION_OUT = 0x2 BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -136,6 +146,7 @@ const ( BPF_OR = 0x40 BPF_RELEASE = 0x30bb6 BPF_RET = 0x6 + BPF_RND = 0xc0 BPF_RSH = 0x70 BPF_ST = 0x2 BPF_STX = 0x3 @@ -147,6 +158,12 @@ const ( BRKINT = 0x2 CFLUSH = 0xf CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x6 + CLOCK_MONOTONIC = 0x3 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x4 + CLOCK_UPTIME = 0x5 CPUSTATES = 0x6 CP_IDLE = 0x5 CP_INTR = 0x4 @@ -170,7 +187,65 @@ const ( CTL_KERN = 0x1 CTL_MAXNAME = 0xc CTL_NET = 0x4 + DIOCADDQUEUE = 0xc100445d + DIOCADDRULE = 0xcce04404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xcce0441a + DIOCCLRIFFLAG = 0xc024445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0d04412 + DIOCCLRSTATUS = 0xc0244416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1084460 + DIOCGETQUEUE = 0xc100445f + DIOCGETQUEUES = 0xc100445e + DIOCGETRULE = 0xcce04407 + DIOCGETRULES = 0xcce04406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0084454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0084419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0244457 + DIOCKILLSRCNODES = 0xc068445b + DIOCKILLSTATES = 0xc0d04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc088444f DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0884450 + DIOCRADDADDRS = 0xc44c4443 + DIOCRADDTABLES = 0xc44c443d + DIOCRCLRADDRS = 0xc44c4442 + DIOCRCLRASTATS = 0xc44c4448 + DIOCRCLRTABLES = 0xc44c443c + DIOCRCLRTSTATS = 0xc44c4441 + DIOCRDELADDRS = 0xc44c4444 + DIOCRDELTABLES = 0xc44c443e + DIOCRGETADDRS = 0xc44c4446 + DIOCRGETASTATS = 0xc44c4447 + DIOCRGETTABLES = 0xc44c443f + DIOCRGETTSTATS = 0xc44c4440 + DIOCRINADEFINE = 0xc44c444d + DIOCRSETADDRS = 0xc44c4445 + DIOCRSETTFLAGS = 0xc44c444a + DIOCRTSTADDRS = 0xc44c4449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0244459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0244414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc00c4451 + DIOCXCOMMIT = 0xc00c4452 + DIOCXROLLBACK = 0xc00c4453 DLT_ARCNET = 0x7 DLT_ATM_RFC1483 = 0xb DLT_AX25 = 0x3 @@ -186,6 +261,7 @@ const ( DLT_LOOP = 0xc DLT_MPLS = 0xdb DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b DLT_PFLOG = 0x75 DLT_PFSYNC = 0x12 DLT_PPP = 0x9 @@ -196,6 +272,23 @@ const ( DLT_RAW = 0xe DLT_SLIP = 0x8 DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c DT_BLK = 0x6 DT_CHR = 0x2 DT_DIR = 0x4 @@ -215,6 +308,8 @@ const ( EMUL_ENABLED = 0x1 EMUL_NATIVE = 0x2 ENDRUNDISC = 0x9 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 ETHERMIN = 0x2e ETHERMTU = 0x5dc ETHERTYPE_8023 = 0x4 @@ -267,6 +362,7 @@ const ( ETHERTYPE_DN = 0x6003 ETHERTYPE_DOGFIGHT = 0x1989 ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_EAPOL = 0x888e ETHERTYPE_ECMA = 0x803 ETHERTYPE_ENCRYPT = 0x803d ETHERTYPE_ES = 0x805d @@ -298,6 +394,7 @@ const ( ETHERTYPE_LLDP = 0x88cc ETHERTYPE_LOGICRAFT = 0x8148 ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 ETHERTYPE_MATRA = 0x807a ETHERTYPE_MAX = 0xffff ETHERTYPE_MERIT = 0x807c @@ -326,15 +423,17 @@ const ( ETHERTYPE_NCD = 0x8149 ETHERTYPE_NESTAR = 0x8006 ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NHRP = 0x2001 ETHERTYPE_NOVELL = 0x8138 ETHERTYPE_NS = 0x600 ETHERTYPE_NSAT = 0x601 ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f ETHERTYPE_NTRAILER = 0x10 ETHERTYPE_OS9 = 0x7007 ETHERTYPE_OS9NET = 0x7009 ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e + ETHERTYPE_PBB = 0x88e7 ETHERTYPE_PCS = 0x4242 ETHERTYPE_PLANNING = 0x8044 ETHERTYPE_PPP = 0x880b @@ -409,28 +508,40 @@ const ( ETHER_CRC_POLY_LE = 0xedb88320 ETHER_HDR_LEN = 0xe ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b ETHER_MAX_LEN = 0x5ee ETHER_MIN_LEN = 0x40 ETHER_TYPE_LEN = 0x2 ETHER_VLAN_ENCAP_LEN = 0x4 EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_EXCEPT = -0x9 EVFILT_PROC = -0x5 EVFILT_READ = -0x1 EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x7 + EVFILT_SYSCOUNT = 0x9 EVFILT_TIMER = -0x7 EVFILT_VNODE = -0x4 EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 EV_ADD = 0x1 EV_CLEAR = 0x20 EV_DELETE = 0x2 EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 EV_ENABLE = 0x4 EV_EOF = 0x8000 EV_ERROR = 0x4000 EV_FLAG1 = 0x2000 EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf800 EXTA = 0x4b00 EXTB = 0x9600 EXTPROC = 0x800 @@ -443,6 +554,8 @@ const ( F_GETFL = 0x3 F_GETLK = 0x7 F_GETOWN = 0x5 + F_ISATTY = 0xb + F_OK = 0x0 F_RDLCK = 0x1 F_SETFD = 0x2 F_SETFL = 0x4 @@ -459,7 +572,6 @@ const ( IEXTEN = 0x400 IFAN_ARRIVAL = 0x0 IFAN_DEPARTURE = 0x1 - IFA_ROUTE = 0x1 IFF_ALLMULTI = 0x200 IFF_BROADCAST = 0x2 IFF_CANTCHANGE = 0x8e52 @@ -470,12 +582,12 @@ const ( IFF_LOOPBACK = 0x8 IFF_MULTICAST = 0x8000 IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 IFF_OACTIVE = 0x400 IFF_POINTOPOINT = 0x10 IFF_PROMISC = 0x100 IFF_RUNNING = 0x40 IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 IFF_UP = 0x1 IFNAMSIZ = 0x10 IFT_1822 = 0x2 @@ -604,6 +716,7 @@ const ( IFT_LINEGROUP = 0xd2 IFT_LOCALTALK = 0x2a IFT_LOOP = 0x18 + IFT_MBIM = 0xfa IFT_MEDIAMAILOVERIP = 0x8b IFT_MFSIGLINK = 0xa7 IFT_MIOX25 = 0x26 @@ -694,6 +807,7 @@ const ( IFT_VOICEOVERCABLE = 0xc6 IFT_VOICEOVERFRAMERELAY = 0x99 IFT_VOICEOVERIP = 0x68 + IFT_WIREGUARD = 0xfb IFT_X213 = 0x5d IFT_X25 = 0x5 IFT_X25DDN = 0x4 @@ -728,8 +842,6 @@ const ( IPPROTO_AH = 0x33 IPPROTO_CARP = 0x70 IPPROTO_DIVERT = 0x102 - IPPROTO_DIVERT_INIT = 0x2 - IPPROTO_DIVERT_RESP = 0x1 IPPROTO_DONE = 0x101 IPPROTO_DSTOPTS = 0x3c IPPROTO_EGP = 0x8 @@ -761,9 +873,11 @@ const ( IPPROTO_RAW = 0xff IPPROTO_ROUTING = 0x2b IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 IPPROTO_TCP = 0x6 IPPROTO_TP = 0x1d IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 IPV6_AUTH_LEVEL = 0x35 IPV6_AUTOFLOWLABEL = 0x3b IPV6_CHECKSUM = 0x1a @@ -786,6 +900,7 @@ const ( IPV6_LEAVE_GROUP = 0xd IPV6_MAXHLIM = 0xff IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 IPV6_MMTU = 0x500 IPV6_MULTICAST_HOPS = 0xa IPV6_MULTICAST_IF = 0x9 @@ -825,12 +940,12 @@ const ( IP_DEFAULT_MULTICAST_LOOP = 0x1 IP_DEFAULT_MULTICAST_TTL = 0x1 IP_DF = 0x4000 - IP_DIVERTFL = 0x1022 IP_DROP_MEMBERSHIP = 0xd IP_ESP_NETWORK_LEVEL = 0x16 IP_ESP_TRANS_LEVEL = 0x15 IP_HDRINCL = 0x2 IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 IP_IPSECFLOWINFO = 0x24 IP_IPSEC_LOCAL_AUTH = 0x1b IP_IPSEC_LOCAL_CRED = 0x19 @@ -864,10 +979,15 @@ const ( IP_RETOPTS = 0x8 IP_RF = 0x8000 IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 IP_TOS = 0x3 IP_TTL = 0x4 ISIG = 0x80 ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IUCLC = 0x1000 IXANY = 0x800 IXOFF = 0x400 IXON = 0x200 @@ -922,6 +1042,7 @@ const ( MNT_NOATIME = 0x8000 MNT_NODEV = 0x10 MNT_NOEXEC = 0x4 + MNT_NOPERM = 0x20 MNT_NOSUID = 0x8 MNT_NOWAIT = 0x2 MNT_QUOTA = 0x2000 @@ -929,12 +1050,27 @@ const ( MNT_RELOAD = 0x40000 MNT_ROOTFS = 0x4000 MNT_SOFTDEP = 0x4000000 + MNT_STALLED = 0x100000 + MNT_SWAPPABLE = 0x200000 MNT_SYNCHRONOUS = 0x2 MNT_UPDATE = 0x10000 MNT_VISFLAGMASK = 0x400ffff MNT_WAIT = 0x1 MNT_WANTRDWR = 0x2000000 MNT_WXALLOWED = 0x800 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" MSG_BCAST = 0x100 MSG_CMSG_CLOEXEC = 0x800 MSG_CTRUNC = 0x20 @@ -947,6 +1083,7 @@ const ( MSG_PEEK = 0x2 MSG_TRUNC = 0x10 MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x1000 MS_ASYNC = 0x1 MS_INVALIDATE = 0x4 MS_SYNC = 0x2 @@ -954,12 +1091,16 @@ const ( NET_RT_DUMP = 0x1 NET_RT_FLAGS = 0x2 NET_RT_IFLIST = 0x3 - NET_RT_MAXID = 0x6 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x8 + NET_RT_SOURCE = 0x7 NET_RT_STATS = 0x4 NET_RT_TABLE = 0x5 NFDBITS = 0x20 NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 NOTE_CHILD = 0x4 NOTE_DELETE = 0x1 NOTE_EOF = 0x2 @@ -969,6 +1110,7 @@ const ( NOTE_FORK = 0x40000000 NOTE_LINK = 0x10 NOTE_LOWAT = 0x1 + NOTE_OOB = 0x4 NOTE_PCTRLMASK = 0xf0000000 NOTE_PDATAMASK = 0xfffff NOTE_RENAME = 0x20 @@ -978,11 +1120,13 @@ const ( NOTE_TRUNCATE = 0x80 NOTE_WRITE = 0x2 OCRNL = 0x10 + OLCUC = 0x20 ONLCR = 0x2 ONLRET = 0x80 ONOCR = 0x40 ONOEOT = 0x8 OPOST = 0x1 + OXTABS = 0x4 O_ACCMODE = 0x3 O_APPEND = 0x8 O_ASYNC = 0x40 @@ -1027,19 +1171,25 @@ const ( RLIMIT_STACK = 0x3 RLIM_INFINITY = 0x7fffffffffffffff RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb RTAX_BRD = 0x7 + RTAX_DNS = 0xc RTAX_DST = 0x0 RTAX_GATEWAY = 0x1 RTAX_GENMASK = 0x3 RTAX_IFA = 0x5 RTAX_IFP = 0x4 RTAX_LABEL = 0xa - RTAX_MAX = 0xb + RTAX_MAX = 0xf RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe RTAX_SRC = 0x8 RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 RTA_BRD = 0x80 + RTA_DNS = 0x1000 RTA_DST = 0x1 RTA_GATEWAY = 0x2 RTA_GENMASK = 0x8 @@ -1047,24 +1197,29 @@ const ( RTA_IFP = 0x10 RTA_LABEL = 0x400 RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 RTA_SRC = 0x100 RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 RTF_BLACKHOLE = 0x1000 RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 RTF_CLONED = 0x10000 RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 RTF_DONE = 0x40 RTF_DYNAMIC = 0x10 - RTF_FMASK = 0x70f808 + RTF_FMASK = 0x110fc08 RTF_GATEWAY = 0x2 RTF_HOST = 0x4 RTF_LLINFO = 0x400 RTF_LOCAL = 0x200000 - RTF_MASK = 0x80 RTF_MODIFIED = 0x20 RTF_MPATH = 0x40000 RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 RTF_PERMANENT_ARP = 0x2000 RTF_PROTO1 = 0x8000 RTF_PROTO2 = 0x4000 @@ -1073,23 +1228,26 @@ const ( RTF_STATIC = 0x800 RTF_UP = 0x1 RTF_USETRAILERS = 0x8000 - RTF_XRESOLVE = 0x200 + RTM_80211INFO = 0x15 RTM_ADD = 0x1 + RTM_BFD = 0x12 RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 RTM_DELADDR = 0xd RTM_DELETE = 0x2 RTM_DESYNC = 0x10 RTM_GET = 0x4 RTM_IFANNOUNCE = 0xf RTM_IFINFO = 0xe - RTM_LOCK = 0x8 + RTM_INVALIDATE = 0x11 RTM_LOSING = 0x5 RTM_MAXSIZE = 0x800 RTM_MISS = 0x7 RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 RTM_REDIRECT = 0x6 RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 + RTM_SOURCE = 0x16 RTM_VERSION = 0x5 RTV_EXPIRE = 0x4 RTV_HOPCOUNT = 0x2 @@ -1099,67 +1257,74 @@ const ( RTV_RTTVAR = 0x80 RTV_SPIPE = 0x10 RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff RT_TABLEID_MAX = 0xff RUSAGE_CHILDREN = -0x1 RUSAGE_SELF = 0x0 RUSAGE_THREAD = 0x1 SCM_RIGHTS = 0x1 SCM_TIMESTAMP = 0x4 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 SIOCADDMULTI = 0x80206931 SIOCAIFADDR = 0x8040691a SIOCAIFGROUP = 0x80246987 - SIOCALIFADDR = 0x8218691c SIOCATMARK = 0x40047307 - SIOCBRDGADD = 0x8054693c - SIOCBRDGADDS = 0x80546941 - SIOCBRDGARL = 0x806e694d + SIOCBRDGADD = 0x8060693c + SIOCBRDGADDL = 0x80606949 + SIOCBRDGADDS = 0x80606941 + SIOCBRDGARL = 0x808c694d SIOCBRDGDADDR = 0x81286947 - SIOCBRDGDEL = 0x8054693d - SIOCBRDGDELS = 0x80546942 - SIOCBRDGFLUSH = 0x80546948 - SIOCBRDGFRL = 0x806e694e + SIOCBRDGDEL = 0x8060693d + SIOCBRDGDELS = 0x80606942 + SIOCBRDGFLUSH = 0x80606948 + SIOCBRDGFRL = 0x808c694e SIOCBRDGGCACHE = 0xc0146941 SIOCBRDGGFD = 0xc0146952 SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc054693e + SIOCBRDGGIFFLGS = 0xc060693e SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc03c6958 + SIOCBRDGGPARAM = 0xc0406958 SIOCBRDGGPRI = 0xc0146950 SIOCBRDGGRL = 0xc028694f - SIOCBRDGGSIFS = 0xc054693c SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0546942 + SIOCBRDGIFS = 0xc0606942 SIOCBRDGRTS = 0xc0186943 SIOCBRDGSADDR = 0xc1286944 SIOCBRDGSCACHE = 0x80146940 SIOCBRDGSFD = 0x80146952 SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80546955 - SIOCBRDGSIFFLGS = 0x8054693f - SIOCBRDGSIFPRIO = 0x80546954 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a SIOCBRDGSMA = 0x80146953 SIOCBRDGSPRI = 0x80146950 SIOCBRDGSPROTO = 0x8014695a SIOCBRDGSTO = 0x80146945 SIOCBRDGSTXHC = 0x80146959 + SIOCDELLABEL = 0x80206997 SIOCDELMULTI = 0x80206932 SIOCDIFADDR = 0x80206919 SIOCDIFGROUP = 0x80246989 + SIOCDIFPARENT = 0x802069b4 SIOCDIFPHYADDR = 0x80206949 - SIOCDLIFADDR = 0x8218691e + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af SIOCGETKALIVE = 0xc01869a4 SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae SIOCGETPFLOW = 0xc02069fe SIOCGETPFSYNC = 0xc02069f8 SIOCGETSGCNT = 0xc0147534 SIOCGETVIFCNT = 0xc0147533 SIOCGETVLAN = 0xc0206990 - SIOCGHIWAT = 0x40047301 SIOCGIFADDR = 0xc0206921 - SIOCGIFASYNCMAP = 0xc020697c SIOCGIFBRDADDR = 0xc0206923 SIOCGIFCONF = 0xc0086924 SIOCGIFDATA = 0xc020691b @@ -1168,41 +1333,53 @@ const ( SIOCGIFFLAGS = 0xc0206911 SIOCGIFGATTR = 0xc024698b SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc024698d SIOCGIFGMEMB = 0xc024698a SIOCGIFGROUP = 0xc0246988 SIOCGIFHARDMTU = 0xc02069a5 - SIOCGIFMEDIA = 0xc0286936 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0386938 SIOCGIFMETRIC = 0xc0206917 SIOCGIFMTU = 0xc020697e SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 SIOCGIFPRIORITY = 0xc020699c - SIOCGIFPSRCADDR = 0xc0206947 SIOCGIFRDOMAIN = 0xc02069a0 SIOCGIFRTLABEL = 0xc0206983 SIOCGIFRXR = 0x802069aa - SIOCGIFTIMESLOT = 0xc0206986 + SIOCGIFSFFPAGE = 0xc1126939 SIOCGIFXFLAGS = 0xc020699e - SIOCGLIFADDR = 0xc218691d SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 SIOCGLIFPHYRTABLE = 0xc02069a2 SIOCGLIFPHYTTL = 0xc02069a9 - SIOCGLOWAT = 0x40047303 SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac SIOCIFCREATE = 0x8020697a SIOCIFDESTROY = 0x80206979 SIOCIFGCLONERS = 0xc00c6978 SIOCSETKALIVE = 0x801869a3 SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad SIOCSETPFLOW = 0x802069fd SIOCSETPFSYNC = 0x802069f7 SIOCSETVLAN = 0x8020698f - SIOCSHIWAT = 0x80047300 SIOCSIFADDR = 0x8020690c - SIOCSIFASYNCMAP = 0x8020697d SIOCSIFBRDADDR = 0x80206913 SIOCSIFDESCR = 0x80206980 SIOCSIFDSTADDR = 0x8020690e @@ -1210,26 +1387,36 @@ const ( SIOCSIFGATTR = 0x8024698c SIOCSIFGENERIC = 0x80206939 SIOCSIFLLADDR = 0x8020691f - SIOCSIFMEDIA = 0xc0206935 + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 SIOCSIFMETRIC = 0x80206918 SIOCSIFMTU = 0x8020697f SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 SIOCSIFPRIORITY = 0x8020699b SIOCSIFRDOMAIN = 0x8020699f SIOCSIFRTLABEL = 0x80206982 - SIOCSIFTIMESLOT = 0x80206985 SIOCSIFXFLAGS = 0x8020699d SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 SIOCSLIFPHYRTABLE = 0x802069a1 SIOCSLIFPHYTTL = 0x802069a8 - SIOCSLOWAT = 0x80047302 SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 + SIOCSUMBPARAM = 0x802069bf SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 SIOCSVNETID = 0x802069a6 SOCK_CLOEXEC = 0x8000 SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 SOCK_NONBLOCK = 0x4000 SOCK_RAW = 0x3 SOCK_RDM = 0x4 @@ -1241,6 +1428,7 @@ const ( SO_BINDANY = 0x1000 SO_BROADCAST = 0x20 SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 SO_DONTROUTE = 0x10 SO_ERROR = 0x1007 SO_KEEPALIVE = 0x8 @@ -1248,6 +1436,7 @@ const ( SO_NETPROC = 0x1020 SO_OOBINLINE = 0x100 SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 SO_RCVBUF = 0x1002 SO_RCVLOWAT = 0x1004 SO_RCVTIMEO = 0x1006 @@ -1261,6 +1450,7 @@ const ( SO_TIMESTAMP = 0x800 SO_TYPE = 0x1008 SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 S_BLKSIZE = 0x200 S_IEXEC = 0x40 S_IFBLK = 0x6000 @@ -1290,9 +1480,24 @@ const ( S_IXOTH = 0x1 S_IXUSR = 0x40 TCIFLUSH = 0x1 + TCIOFF = 0x3 TCIOFLUSH = 0x3 + TCION = 0x4 TCOFLUSH = 0x2 - TCP_MAXBURST = 0x4 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 TCP_MAXSEG = 0x2 TCP_MAXWIN = 0xffff TCP_MAX_SACK = 0x3 @@ -1301,11 +1506,15 @@ const ( TCP_MSS = 0x200 TCP_NODELAY = 0x1 TCP_NOPUSH = 0x10 - TCP_NSTATES = 0xb + TCP_SACKHOLE_LIMIT = 0x80 TCP_SACK_ENABLE = 0x8 TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 TIOCCBRK = 0x2000747a TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d TIOCCONS = 0x80047462 TIOCDRAIN = 0x2000745e TIOCEXCL = 0x2000740d @@ -1321,7 +1530,7 @@ const ( TIOCGFLAGS = 0x4004745d TIOCGPGRP = 0x40047477 TIOCGSID = 0x40047463 - TIOCGTSTAMP = 0x400c745b + TIOCGTSTAMP = 0x4010745b TIOCGWINSZ = 0x40087468 TIOCMBIC = 0x8004746b TIOCMBIS = 0x8004746c @@ -1360,17 +1569,21 @@ const ( TIOCSETAF = 0x802c7416 TIOCSETAW = 0x802c7415 TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c TIOCSFLAGS = 0x8004745c TIOCSIG = 0x8004745f TIOCSPGRP = 0x80047476 TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 + TIOCSTAT = 0x20007465 TIOCSTOP = 0x2000746f TIOCSTSTAMP = 0x8008745a TIOCSWINSZ = 0x80087467 TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b TOSTOP = 0x400000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x1 VDISCARD = 0xf VDSUSP = 0xb VEOF = 0x0 @@ -1381,6 +1594,19 @@ const ( VKILL = 0x5 VLNEXT = 0xe VMIN = 0x10 + VM_ANONMIN = 0x7 + VM_LOADAVG = 0x2 + VM_MALLOC_CONF = 0xc + VM_MAXID = 0xd + VM_MAXSLP = 0xa + VM_METER = 0x1 + VM_NKMEMPAGES = 0x6 + VM_PSSTRINGS = 0x3 + VM_SWAPENCRYPT = 0x5 + VM_USPACE = 0xb + VM_UVMEXP = 0x4 + VM_VNODEMIN = 0x9 + VM_VTEXTMIN = 0x8 VQUIT = 0x9 VREPRINT = 0x6 VSTART = 0xc @@ -1394,6 +1620,7 @@ const ( WCOREFLAG = 0x80 WNOHANG = 0x1 WUNTRACED = 0x2 + XCASE = 0x1000000 ) // Errors @@ -1407,6 +1634,7 @@ const ( EALREADY = syscall.Errno(0x25) EAUTH = syscall.Errno(0x50) EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x5c) EBADRPC = syscall.Errno(0x48) EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x58) @@ -1433,7 +1661,7 @@ const ( EIPSEC = syscall.Errno(0x52) EISCONN = syscall.Errno(0x38) EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x5b) + ELAST = syscall.Errno(0x5f) ELOOP = syscall.Errno(0x3e) EMEDIUMTYPE = syscall.Errno(0x56) EMFILE = syscall.Errno(0x18) @@ -1461,12 +1689,14 @@ const ( ENOTCONN = syscall.Errno(0x39) ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5d) ENOTSOCK = syscall.Errno(0x26) ENOTSUP = syscall.Errno(0x5b) ENOTTY = syscall.Errno(0x19) ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x2d) EOVERFLOW = syscall.Errno(0x57) + EOWNERDEAD = syscall.Errno(0x5e) EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x2e) EPIPE = syscall.Errno(0x20) @@ -1474,6 +1704,7 @@ const ( EPROCUNAVAIL = syscall.Errno(0x4c) EPROGMISMATCH = syscall.Errno(0x4b) EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5f) EPROTONOSUPPORT = syscall.Errno(0x2b) EPROTOTYPE = syscall.Errno(0x29) ERANGE = syscall.Errno(0x22) @@ -1570,7 +1801,7 @@ var errorList = [...]struct { {32, "EPIPE", "broken pipe"}, {33, "EDOM", "numerical argument out of domain"}, {34, "ERANGE", "result too large"}, - {35, "EWOULDBLOCK", "resource temporarily unavailable"}, + {35, "EAGAIN", "resource temporarily unavailable"}, {36, "EINPROGRESS", "operation now in progress"}, {37, "EALREADY", "operation already in progress"}, {38, "ENOTSOCK", "socket operation on non-socket"}, @@ -1626,7 +1857,11 @@ var errorList = [...]struct { {88, "ECANCELED", "operation canceled"}, {89, "EIDRM", "identifier removed"}, {90, "ENOMSG", "no message of desired type"}, - {91, "ELAST", "not supported"}, + {91, "ENOTSUP", "not supported"}, + {92, "EBADMSG", "bad message"}, + {93, "ENOTRECOVERABLE", "state not recoverable"}, + {94, "EOWNERDEAD", "previous owner died"}, + {95, "ELAST", "protocol error"}, } // Signal table @@ -1640,7 +1875,7 @@ var signalList = [...]struct { {3, "SIGQUIT", "quit"}, {4, "SIGILL", "illegal instruction"}, {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGABRT", "abort trap"}, + {6, "SIGIOT", "abort trap"}, {7, "SIGEMT", "EMT trap"}, {8, "SIGFPE", "floating point exception"}, {9, "SIGKILL", "killed"}, @@ -1667,4 +1902,5 @@ var signalList = [...]struct { {30, "SIGUSR1", "user defined signal 1"}, {31, "SIGUSR2", "user defined signal 2"}, {32, "SIGTHR", "thread AST"}, + {28672, "SIGSTKSZ", "unknown signal"}, } diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go index 90de7dfc3..ae16fe754 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go @@ -112,6 +112,12 @@ const ( BPF_FILDROP_CAPTURE = 0x1 BPF_FILDROP_DROP = 0x2 BPF_FILDROP_PASS = 0x0 + BPF_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -140,6 +146,7 @@ const ( BPF_OR = 0x40 BPF_RELEASE = 0x30bb6 BPF_RET = 0x6 + BPF_RND = 0xc0 BPF_RSH = 0x70 BPF_ST = 0x2 BPF_STX = 0x3 @@ -180,7 +187,65 @@ const ( CTL_KERN = 0x1 CTL_MAXNAME = 0xc CTL_NET = 0x4 + DIOCADDQUEUE = 0xc110445d + DIOCADDRULE = 0xcd604404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xcd60441a + DIOCCLRIFFLAG = 0xc028445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0e04412 + DIOCCLRSTATUS = 0xc0284416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1204460 + DIOCGETQUEUE = 0xc110445f + DIOCGETQUEUES = 0xc110445e + DIOCGETRULE = 0xcd604407 + DIOCGETRULES = 0xcd604406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0104454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0104419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0284457 + DIOCKILLSRCNODES = 0xc080445b + DIOCKILLSTATES = 0xc0e04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc088444f DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0884450 + DIOCRADDADDRS = 0xc4504443 + DIOCRADDTABLES = 0xc450443d + DIOCRCLRADDRS = 0xc4504442 + DIOCRCLRASTATS = 0xc4504448 + DIOCRCLRTABLES = 0xc450443c + DIOCRCLRTSTATS = 0xc4504441 + DIOCRDELADDRS = 0xc4504444 + DIOCRDELTABLES = 0xc450443e + DIOCRGETADDRS = 0xc4504446 + DIOCRGETASTATS = 0xc4504447 + DIOCRGETTABLES = 0xc450443f + DIOCRGETTSTATS = 0xc4504440 + DIOCRINADEFINE = 0xc450444d + DIOCRSETADDRS = 0xc4504445 + DIOCRSETTFLAGS = 0xc450444a + DIOCRTSTADDRS = 0xc4504449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0284459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0284414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc0104451 + DIOCXCOMMIT = 0xc0104452 + DIOCXROLLBACK = 0xc0104453 DLT_ARCNET = 0x7 DLT_ATM_RFC1483 = 0xb DLT_AX25 = 0x3 @@ -243,6 +308,8 @@ const ( EMUL_ENABLED = 0x1 EMUL_NATIVE = 0x2 ENDRUNDISC = 0x9 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 ETHERMIN = 0x2e ETHERMTU = 0x5dc ETHERTYPE_8023 = 0x4 @@ -295,6 +362,7 @@ const ( ETHERTYPE_DN = 0x6003 ETHERTYPE_DOGFIGHT = 0x1989 ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_EAPOL = 0x888e ETHERTYPE_ECMA = 0x803 ETHERTYPE_ENCRYPT = 0x803d ETHERTYPE_ES = 0x805d @@ -326,6 +394,7 @@ const ( ETHERTYPE_LLDP = 0x88cc ETHERTYPE_LOGICRAFT = 0x8148 ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 ETHERTYPE_MATRA = 0x807a ETHERTYPE_MAX = 0xffff ETHERTYPE_MERIT = 0x807c @@ -354,15 +423,16 @@ const ( ETHERTYPE_NCD = 0x8149 ETHERTYPE_NESTAR = 0x8006 ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NHRP = 0x2001 ETHERTYPE_NOVELL = 0x8138 ETHERTYPE_NS = 0x600 ETHERTYPE_NSAT = 0x601 ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f ETHERTYPE_NTRAILER = 0x10 ETHERTYPE_OS9 = 0x7007 ETHERTYPE_OS9NET = 0x7009 ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e ETHERTYPE_PBB = 0x88e7 ETHERTYPE_PCS = 0x4242 ETHERTYPE_PLANNING = 0x8044 @@ -445,10 +515,11 @@ const ( ETHER_VLAN_ENCAP_LEN = 0x4 EVFILT_AIO = -0x3 EVFILT_DEVICE = -0x8 + EVFILT_EXCEPT = -0x9 EVFILT_PROC = -0x5 EVFILT_READ = -0x1 EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x8 + EVFILT_SYSCOUNT = 0x9 EVFILT_TIMER = -0x7 EVFILT_VNODE = -0x4 EVFILT_WRITE = -0x2 @@ -470,7 +541,7 @@ const ( EV_FLAG1 = 0x2000 EV_ONESHOT = 0x10 EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 + EV_SYSFLAGS = 0xf800 EXTA = 0x4b00 EXTB = 0x9600 EXTPROC = 0x800 @@ -736,6 +807,7 @@ const ( IFT_VOICEOVERCABLE = 0xc6 IFT_VOICEOVERFRAMERELAY = 0x99 IFT_VOICEOVERIP = 0x68 + IFT_WIREGUARD = 0xfb IFT_X213 = 0x5d IFT_X25 = 0x5 IFT_X25DDN = 0x4 @@ -801,9 +873,11 @@ const ( IPPROTO_RAW = 0xff IPPROTO_ROUTING = 0x2b IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 IPPROTO_TCP = 0x6 IPPROTO_TP = 0x1d IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 IPV6_AUTH_LEVEL = 0x35 IPV6_AUTOFLOWLABEL = 0x3b IPV6_CHECKSUM = 0x1a @@ -910,6 +984,9 @@ const ( IP_TTL = 0x4 ISIG = 0x80 ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 IUCLC = 0x1000 IXANY = 0x800 IXOFF = 0x400 @@ -981,6 +1058,19 @@ const ( MNT_WAIT = 0x1 MNT_WANTRDWR = 0x2000000 MNT_WXALLOWED = 0x800 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" MSG_BCAST = 0x100 MSG_CMSG_CLOEXEC = 0x800 MSG_CTRUNC = 0x20 @@ -993,6 +1083,7 @@ const ( MSG_PEEK = 0x2 MSG_TRUNC = 0x10 MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x1000 MS_ASYNC = 0x1 MS_INVALIDATE = 0x4 MS_SYNC = 0x2 @@ -1001,7 +1092,8 @@ const ( NET_RT_FLAGS = 0x2 NET_RT_IFLIST = 0x3 NET_RT_IFNAMES = 0x6 - NET_RT_MAXID = 0x7 + NET_RT_MAXID = 0x8 + NET_RT_SOURCE = 0x7 NET_RT_STATS = 0x4 NET_RT_TABLE = 0x5 NFDBITS = 0x20 @@ -1018,6 +1110,7 @@ const ( NOTE_FORK = 0x40000000 NOTE_LINK = 0x10 NOTE_LOWAT = 0x1 + NOTE_OOB = 0x4 NOTE_PCTRLMASK = 0xf0000000 NOTE_PDATAMASK = 0xfffff NOTE_RENAME = 0x20 @@ -1154,7 +1247,7 @@ const ( RTM_PROPOSAL = 0x13 RTM_REDIRECT = 0x6 RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 + RTM_SOURCE = 0x16 RTM_VERSION = 0x5 RTV_EXPIRE = 0x4 RTV_HOPCOUNT = 0x2 @@ -1172,6 +1265,9 @@ const ( RUSAGE_THREAD = 0x1 SCM_RIGHTS = 0x1 SCM_TIMESTAMP = 0x4 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -1188,30 +1284,30 @@ const ( SIOCBRDGDELS = 0x80606942 SIOCBRDGFLUSH = 0x80606948 SIOCBRDGFRL = 0x808c694e - SIOCBRDGGCACHE = 0xc0186941 - SIOCBRDGGFD = 0xc0186952 - SIOCBRDGGHT = 0xc0186951 + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0186953 + SIOCBRDGGMA = 0xc0146953 SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0186950 + SIOCBRDGGPRI = 0xc0146950 SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0186946 + SIOCBRDGGTO = 0xc0146946 SIOCBRDGIFS = 0xc0606942 SIOCBRDGRTS = 0xc0206943 SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80186940 - SIOCBRDGSFD = 0x80186952 - SIOCBRDGSHT = 0x80186951 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 SIOCBRDGSIFCOST = 0x80606955 SIOCBRDGSIFFLGS = 0x8060693f SIOCBRDGSIFPRIO = 0x80606954 SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80186953 - SIOCBRDGSPRI = 0x80186950 - SIOCBRDGSPROTO = 0x8018695a - SIOCBRDGSTO = 0x80186945 - SIOCBRDGSTXHC = 0x80186959 + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 SIOCDELLABEL = 0x80206997 SIOCDELMULTI = 0x80206932 SIOCDIFADDR = 0x80206919 @@ -1264,6 +1360,7 @@ const ( SIOCGPWE3CTRLWORD = 0xc02069dc SIOCGPWE3FAT = 0xc02069dd SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db SIOCGSPPPPARAMS = 0xc0206994 SIOCGTXHPRIO = 0xc02069c6 SIOCGUMBINFO = 0xc02069be @@ -1310,17 +1407,13 @@ const ( SIOCSPWE3CTRLWORD = 0x802069dc SIOCSPWE3FAT = 0x802069dd SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db SIOCSSPPPPARAMS = 0x80206993 SIOCSTXHPRIO = 0x802069c5 SIOCSUMBPARAM = 0x802069bf SIOCSVH = 0xc02069f5 SIOCSVNETFLOWID = 0x802069c3 SIOCSVNETID = 0x802069a6 - SIOCSWGDPID = 0xc018695b - SIOCSWGMAXFLOW = 0xc0186960 - SIOCSWGMAXGROUP = 0xc018695d - SIOCSWSDPID = 0x8018695c - SIOCSWSPORTNO = 0xc060695f SOCK_CLOEXEC = 0x8000 SOCK_DGRAM = 0x2 SOCK_DNS = 0x1000 @@ -1335,6 +1428,7 @@ const ( SO_BINDANY = 0x1000 SO_BROADCAST = 0x20 SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 SO_DONTROUTE = 0x10 SO_ERROR = 0x1007 SO_KEEPALIVE = 0x8 @@ -1342,6 +1436,7 @@ const ( SO_NETPROC = 0x1020 SO_OOBINLINE = 0x100 SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 SO_RCVBUF = 0x1002 SO_RCVLOWAT = 0x1004 SO_RCVTIMEO = 0x1006 @@ -1391,7 +1486,18 @@ const ( TCOFLUSH = 0x2 TCOOFF = 0x1 TCOON = 0x2 - TCP_MAXBURST = 0x4 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 TCP_MAXSEG = 0x2 TCP_MAXWIN = 0xffff TCP_MAX_SACK = 0x3 @@ -1400,6 +1506,7 @@ const ( TCP_MSS = 0x200 TCP_NODELAY = 0x1 TCP_NOPUSH = 0x10 + TCP_SACKHOLE_LIMIT = 0x80 TCP_SACK_ENABLE = 0x8 TCSAFLUSH = 0x2 TIMER_ABSTIME = 0x1 @@ -1768,7 +1875,7 @@ var signalList = [...]struct { {3, "SIGQUIT", "quit"}, {4, "SIGILL", "illegal instruction"}, {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGABRT", "abort trap"}, + {6, "SIGIOT", "abort trap"}, {7, "SIGEMT", "EMT trap"}, {8, "SIGFPE", "floating point exception"}, {9, "SIGKILL", "killed"}, @@ -1795,4 +1902,5 @@ var signalList = [...]struct { {30, "SIGUSR1", "user defined signal 1"}, {31, "SIGUSR2", "user defined signal 2"}, {32, "SIGTHR", "thread AST"}, + {28672, "SIGSTKSZ", "unknown signal"}, } diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go index f1154ff56..03d90fe35 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go @@ -112,6 +112,12 @@ const ( BPF_FILDROP_CAPTURE = 0x1 BPF_FILDROP_DROP = 0x2 BPF_FILDROP_PASS = 0x0 + BPF_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -140,6 +146,7 @@ const ( BPF_OR = 0x40 BPF_RELEASE = 0x30bb6 BPF_RET = 0x6 + BPF_RND = 0xc0 BPF_RSH = 0x70 BPF_ST = 0x2 BPF_STX = 0x3 @@ -301,6 +308,8 @@ const ( EMUL_ENABLED = 0x1 EMUL_NATIVE = 0x2 ENDRUNDISC = 0x9 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 ETHERMIN = 0x2e ETHERMTU = 0x5dc ETHERTYPE_8023 = 0x4 @@ -353,6 +362,7 @@ const ( ETHERTYPE_DN = 0x6003 ETHERTYPE_DOGFIGHT = 0x1989 ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_EAPOL = 0x888e ETHERTYPE_ECMA = 0x803 ETHERTYPE_ENCRYPT = 0x803d ETHERTYPE_ES = 0x805d @@ -413,15 +423,16 @@ const ( ETHERTYPE_NCD = 0x8149 ETHERTYPE_NESTAR = 0x8006 ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NHRP = 0x2001 ETHERTYPE_NOVELL = 0x8138 ETHERTYPE_NS = 0x600 ETHERTYPE_NSAT = 0x601 ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f ETHERTYPE_NTRAILER = 0x10 ETHERTYPE_OS9 = 0x7007 ETHERTYPE_OS9NET = 0x7009 ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e ETHERTYPE_PBB = 0x88e7 ETHERTYPE_PCS = 0x4242 ETHERTYPE_PLANNING = 0x8044 @@ -504,10 +515,11 @@ const ( ETHER_VLAN_ENCAP_LEN = 0x4 EVFILT_AIO = -0x3 EVFILT_DEVICE = -0x8 + EVFILT_EXCEPT = -0x9 EVFILT_PROC = -0x5 EVFILT_READ = -0x1 EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x8 + EVFILT_SYSCOUNT = 0x9 EVFILT_TIMER = -0x7 EVFILT_VNODE = -0x4 EVFILT_WRITE = -0x2 @@ -529,7 +541,7 @@ const ( EV_FLAG1 = 0x2000 EV_ONESHOT = 0x10 EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 + EV_SYSFLAGS = 0xf800 EXTA = 0x4b00 EXTB = 0x9600 EXTPROC = 0x800 @@ -795,6 +807,7 @@ const ( IFT_VOICEOVERCABLE = 0xc6 IFT_VOICEOVERFRAMERELAY = 0x99 IFT_VOICEOVERIP = 0x68 + IFT_WIREGUARD = 0xfb IFT_X213 = 0x5d IFT_X25 = 0x5 IFT_X25DDN = 0x4 @@ -860,6 +873,7 @@ const ( IPPROTO_RAW = 0xff IPPROTO_ROUTING = 0x2b IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 IPPROTO_TCP = 0x6 IPPROTO_TP = 0x1d IPPROTO_UDP = 0x11 @@ -970,6 +984,9 @@ const ( IP_TTL = 0x4 ISIG = 0x80 ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 IUCLC = 0x1000 IXANY = 0x800 IXOFF = 0x400 @@ -1041,6 +1058,19 @@ const ( MNT_WAIT = 0x1 MNT_WANTRDWR = 0x2000000 MNT_WXALLOWED = 0x800 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" MSG_BCAST = 0x100 MSG_CMSG_CLOEXEC = 0x800 MSG_CTRUNC = 0x20 @@ -1053,6 +1083,7 @@ const ( MSG_PEEK = 0x2 MSG_TRUNC = 0x10 MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x1000 MS_ASYNC = 0x1 MS_INVALIDATE = 0x4 MS_SYNC = 0x2 @@ -1061,7 +1092,8 @@ const ( NET_RT_FLAGS = 0x2 NET_RT_IFLIST = 0x3 NET_RT_IFNAMES = 0x6 - NET_RT_MAXID = 0x7 + NET_RT_MAXID = 0x8 + NET_RT_SOURCE = 0x7 NET_RT_STATS = 0x4 NET_RT_TABLE = 0x5 NFDBITS = 0x20 @@ -1078,6 +1110,7 @@ const ( NOTE_FORK = 0x40000000 NOTE_LINK = 0x10 NOTE_LOWAT = 0x1 + NOTE_OOB = 0x4 NOTE_PCTRLMASK = 0xf0000000 NOTE_PDATAMASK = 0xfffff NOTE_RENAME = 0x20 @@ -1214,7 +1247,7 @@ const ( RTM_PROPOSAL = 0x13 RTM_REDIRECT = 0x6 RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 + RTM_SOURCE = 0x16 RTM_VERSION = 0x5 RTV_EXPIRE = 0x4 RTV_HOPCOUNT = 0x2 @@ -1232,6 +1265,9 @@ const ( RUSAGE_THREAD = 0x1 SCM_RIGHTS = 0x1 SCM_TIMESTAMP = 0x4 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -1248,30 +1284,30 @@ const ( SIOCBRDGDELS = 0x80606942 SIOCBRDGFLUSH = 0x80606948 SIOCBRDGFRL = 0x808c694e - SIOCBRDGGCACHE = 0xc0186941 - SIOCBRDGGFD = 0xc0186952 - SIOCBRDGGHT = 0xc0186951 + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0186953 + SIOCBRDGGMA = 0xc0146953 SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0186950 + SIOCBRDGGPRI = 0xc0146950 SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0186946 + SIOCBRDGGTO = 0xc0146946 SIOCBRDGIFS = 0xc0606942 SIOCBRDGRTS = 0xc0206943 SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80186940 - SIOCBRDGSFD = 0x80186952 - SIOCBRDGSHT = 0x80186951 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 SIOCBRDGSIFCOST = 0x80606955 SIOCBRDGSIFFLGS = 0x8060693f SIOCBRDGSIFPRIO = 0x80606954 SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80186953 - SIOCBRDGSPRI = 0x80186950 - SIOCBRDGSPROTO = 0x8018695a - SIOCBRDGSTO = 0x80186945 - SIOCBRDGSTXHC = 0x80186959 + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 SIOCDELLABEL = 0x80206997 SIOCDELMULTI = 0x80206932 SIOCDIFADDR = 0x80206919 @@ -1378,11 +1414,6 @@ const ( SIOCSVH = 0xc02069f5 SIOCSVNETFLOWID = 0x802069c3 SIOCSVNETID = 0x802069a6 - SIOCSWGDPID = 0xc018695b - SIOCSWGMAXFLOW = 0xc0186960 - SIOCSWGMAXGROUP = 0xc018695d - SIOCSWSDPID = 0x8018695c - SIOCSWSPORTNO = 0xc060695f SOCK_CLOEXEC = 0x8000 SOCK_DGRAM = 0x2 SOCK_DNS = 0x1000 @@ -1455,7 +1486,18 @@ const ( TCOFLUSH = 0x2 TCOOFF = 0x1 TCOON = 0x2 - TCP_MAXBURST = 0x4 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 TCP_MAXSEG = 0x2 TCP_MAXWIN = 0xffff TCP_MAX_SACK = 0x3 @@ -1833,7 +1875,7 @@ var signalList = [...]struct { {3, "SIGQUIT", "quit"}, {4, "SIGILL", "illegal instruction"}, {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGABRT", "abort trap"}, + {6, "SIGIOT", "abort trap"}, {7, "SIGEMT", "EMT trap"}, {8, "SIGFPE", "floating point exception"}, {9, "SIGKILL", "killed"}, @@ -1860,4 +1902,5 @@ var signalList = [...]struct { {30, "SIGUSR1", "user defined signal 1"}, {31, "SIGUSR2", "user defined signal 2"}, {32, "SIGTHR", "thread AST"}, + {81920, "SIGSTKSZ", "unknown signal"}, } diff --git a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go index 1b6eedfa6..54749f9c5 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go @@ -552,6 +552,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go index 039c4aa06..77479d458 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go @@ -544,6 +544,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go index 0535d3cfd..2e966d4d7 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go @@ -544,6 +544,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go index 1018b5221..d65a7c0fa 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go @@ -544,6 +544,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go index 3802f4b37..6f0b97c6d 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go @@ -544,6 +544,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go index 8a2db7da9..e1c23b527 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go @@ -544,6 +544,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go index 293cf3680..36ea3a55b 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux.go @@ -537,6 +537,17 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockAdjtime(clockid int32, buf *Timex) (state int, err error) { + r0, _, e1 := Syscall(SYS_CLOCK_ADJTIME, uintptr(clockid), uintptr(unsafe.Pointer(buf)), 0) + state = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ClockGetres(clockid int32, res *Timespec) (err error) { _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go index 4af561a48..79f738996 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go @@ -521,6 +521,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go index 3b90e9448..fb161f3a2 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go @@ -521,6 +521,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go index 890f4ccd1..4c8ac993a 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go @@ -521,6 +521,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go index c79f071fc..76dd8ec4f 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go @@ -521,6 +521,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go index 2925fe0a7..caeb807bd 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go @@ -696,6 +696,20 @@ var libc_chroot_trampoline_addr uintptr // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s index 75eb2f5f3..087444250 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s @@ -5,792 +5,665 @@ TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getgroups(SB) - GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $4 DATA ·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB) TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setgroups(SB) - GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $4 DATA ·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB) TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_wait4(SB) - GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $4 DATA ·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB) TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_accept(SB) - GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $4 DATA ·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB) TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_bind(SB) - GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $4 DATA ·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB) TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_connect(SB) - GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $4 DATA ·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB) TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_socket(SB) - GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $4 DATA ·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB) TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsockopt(SB) - GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $4 DATA ·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB) TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setsockopt(SB) - GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $4 DATA ·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB) TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpeername(SB) - GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $4 DATA ·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB) TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsockname(SB) - GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $4 DATA ·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB) TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_shutdown(SB) - GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $4 DATA ·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB) TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_socketpair(SB) - GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $4 DATA ·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB) TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_recvfrom(SB) - GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $4 DATA ·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB) TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sendto(SB) - GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $4 DATA ·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB) TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_recvmsg(SB) - GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $4 DATA ·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB) TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sendmsg(SB) - GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $4 DATA ·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB) TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kevent(SB) - GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $4 DATA ·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB) TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_utimes(SB) - GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $4 DATA ·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB) TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_futimes(SB) - GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $4 DATA ·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB) TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_poll(SB) - GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $4 DATA ·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB) TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_madvise(SB) - GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $4 DATA ·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB) TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mlock(SB) - GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $4 DATA ·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB) TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mlockall(SB) - GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $4 DATA ·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB) TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mprotect(SB) - GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $4 DATA ·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB) TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_msync(SB) - GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $4 DATA ·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB) TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munlock(SB) - GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $4 DATA ·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB) TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munlockall(SB) - GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $4 DATA ·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB) TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pipe2(SB) - GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $4 DATA ·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB) TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getdents(SB) - GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $4 DATA ·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB) TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getcwd(SB) - GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4 DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB) TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) - GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4 DATA ·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB) TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sysctl(SB) - GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $4 DATA ·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB) TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ppoll(SB) - GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $4 DATA ·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB) TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_access(SB) - GLOBL ·libc_access_trampoline_addr(SB), RODATA, $4 DATA ·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB) TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_adjtime(SB) - GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $4 DATA ·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB) TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chdir(SB) - GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $4 DATA ·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB) TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chflags(SB) - GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $4 DATA ·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB) TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chmod(SB) - GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $4 DATA ·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB) TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chown(SB) - GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $4 DATA ·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB) TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chroot(SB) - GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $4 DATA ·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB) +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $4 +DATA ·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB) + TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_close(SB) - GLOBL ·libc_close_trampoline_addr(SB), RODATA, $4 DATA ·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB) TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_dup(SB) - GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $4 DATA ·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB) TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_dup2(SB) - GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $4 DATA ·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB) TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_dup3(SB) - GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $4 DATA ·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB) TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_exit(SB) - GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $4 DATA ·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB) TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_faccessat(SB) - GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $4 DATA ·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB) TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchdir(SB) - GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $4 DATA ·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB) TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchflags(SB) - GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $4 DATA ·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB) TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchmod(SB) - GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $4 DATA ·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB) TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchmodat(SB) - GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $4 DATA ·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB) TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchown(SB) - GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $4 DATA ·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB) TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchownat(SB) - GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $4 DATA ·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB) TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_flock(SB) - GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $4 DATA ·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB) TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fpathconf(SB) - GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $4 DATA ·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB) TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstat(SB) - GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $4 DATA ·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB) TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstatat(SB) - GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $4 DATA ·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB) TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstatfs(SB) - GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $4 DATA ·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB) TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fsync(SB) - GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $4 DATA ·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB) TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ftruncate(SB) - GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $4 DATA ·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB) TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getegid(SB) - GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $4 DATA ·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB) TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_geteuid(SB) - GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $4 DATA ·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB) TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getgid(SB) - GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $4 DATA ·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB) TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpgid(SB) - GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $4 DATA ·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB) TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpgrp(SB) - GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $4 DATA ·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB) TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpid(SB) - GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $4 DATA ·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB) TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getppid(SB) - GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $4 DATA ·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB) TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpriority(SB) - GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $4 DATA ·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB) TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getrlimit(SB) - GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $4 DATA ·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB) TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getrtable(SB) - GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $4 DATA ·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB) TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getrusage(SB) - GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $4 DATA ·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB) TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsid(SB) - GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $4 DATA ·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB) TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_gettimeofday(SB) - GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $4 DATA ·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB) TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getuid(SB) - GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $4 DATA ·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB) TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_issetugid(SB) - GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $4 DATA ·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB) TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kill(SB) - GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $4 DATA ·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB) TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kqueue(SB) - GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $4 DATA ·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB) TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lchown(SB) - GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $4 DATA ·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB) TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_link(SB) - GLOBL ·libc_link_trampoline_addr(SB), RODATA, $4 DATA ·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB) TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_linkat(SB) - GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $4 DATA ·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB) TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_listen(SB) - GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $4 DATA ·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB) TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lstat(SB) - GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $4 DATA ·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB) TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkdir(SB) - GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $4 DATA ·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB) TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkdirat(SB) - GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $4 DATA ·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB) TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkfifo(SB) - GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $4 DATA ·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB) TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkfifoat(SB) - GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $4 DATA ·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB) TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mknod(SB) - GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $4 DATA ·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB) TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mknodat(SB) - GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $4 DATA ·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB) TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_nanosleep(SB) - GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $4 DATA ·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB) TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_open(SB) - GLOBL ·libc_open_trampoline_addr(SB), RODATA, $4 DATA ·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB) TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_openat(SB) - GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $4 DATA ·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB) TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pathconf(SB) - GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $4 DATA ·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB) TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pread(SB) - GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $4 DATA ·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB) TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pwrite(SB) - GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $4 DATA ·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB) TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_read(SB) - GLOBL ·libc_read_trampoline_addr(SB), RODATA, $4 DATA ·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB) TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_readlink(SB) - GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $4 DATA ·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB) TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_readlinkat(SB) - GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $4 DATA ·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB) TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_rename(SB) - GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $4 DATA ·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB) TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_renameat(SB) - GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $4 DATA ·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB) TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_revoke(SB) - GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $4 DATA ·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB) TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_rmdir(SB) - GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $4 DATA ·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB) TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lseek(SB) - GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $4 DATA ·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB) TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_select(SB) - GLOBL ·libc_select_trampoline_addr(SB), RODATA, $4 DATA ·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB) TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setegid(SB) - GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $4 DATA ·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB) TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_seteuid(SB) - GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $4 DATA ·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB) TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setgid(SB) - GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $4 DATA ·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB) TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setlogin(SB) - GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $4 DATA ·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB) TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setpgid(SB) - GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $4 DATA ·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB) TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setpriority(SB) - GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $4 DATA ·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB) TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setregid(SB) - GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $4 DATA ·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB) TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setreuid(SB) - GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $4 DATA ·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB) TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setresgid(SB) - GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $4 DATA ·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB) TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setresuid(SB) - GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $4 DATA ·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB) TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setrlimit(SB) - GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $4 DATA ·libc_setrlimit_trampoline_addr(SB)/4, $libc_setrlimit_trampoline<>(SB) TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setrtable(SB) - GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $4 DATA ·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB) TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setsid(SB) - GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $4 DATA ·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB) TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_settimeofday(SB) - GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $4 DATA ·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB) TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setuid(SB) - GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $4 DATA ·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB) TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_stat(SB) - GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $4 DATA ·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB) TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_statfs(SB) - GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $4 DATA ·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB) TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_symlink(SB) - GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $4 DATA ·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB) TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_symlinkat(SB) - GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $4 DATA ·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB) TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sync(SB) - GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $4 DATA ·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB) TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_truncate(SB) - GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $4 DATA ·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB) TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_umask(SB) - GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $4 DATA ·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB) TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unlink(SB) - GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $4 DATA ·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB) TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unlinkat(SB) - GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $4 DATA ·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB) TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unmount(SB) - GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $4 DATA ·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB) TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_write(SB) - GLOBL ·libc_write_trampoline_addr(SB), RODATA, $4 DATA ·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB) TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mmap(SB) - GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $4 DATA ·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB) TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munmap(SB) - GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $4 DATA ·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB) TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_utimensat(SB) - GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $4 DATA ·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go index 98446d2b9..a05e5f4ff 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go @@ -696,6 +696,20 @@ var libc_chroot_trampoline_addr uintptr // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s index 243a6663c..5782cd108 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s @@ -5,792 +5,665 @@ TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getgroups(SB) - GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setgroups(SB) - GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_wait4(SB) - GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_accept(SB) - GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_bind(SB) - GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_connect(SB) - GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_socket(SB) - GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsockopt(SB) - GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setsockopt(SB) - GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpeername(SB) - GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsockname(SB) - GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_shutdown(SB) - GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_socketpair(SB) - GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_recvfrom(SB) - GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sendto(SB) - GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_recvmsg(SB) - GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sendmsg(SB) - GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kevent(SB) - GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_utimes(SB) - GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_futimes(SB) - GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_poll(SB) - GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_madvise(SB) - GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mlock(SB) - GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mlockall(SB) - GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mprotect(SB) - GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_msync(SB) - GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munlock(SB) - GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munlockall(SB) - GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pipe2(SB) - GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getdents(SB) - GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getcwd(SB) - GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) - GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sysctl(SB) - GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ppoll(SB) - GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_access(SB) - GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_adjtime(SB) - GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chdir(SB) - GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chflags(SB) - GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chmod(SB) - GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chown(SB) - GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chroot(SB) - GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_close(SB) - GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_dup(SB) - GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_dup2(SB) - GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_dup3(SB) - GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_exit(SB) - GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_faccessat(SB) - GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchdir(SB) - GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchflags(SB) - GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchmod(SB) - GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchmodat(SB) - GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchown(SB) - GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchownat(SB) - GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_flock(SB) - GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fpathconf(SB) - GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstat(SB) - GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstatat(SB) - GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstatfs(SB) - GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fsync(SB) - GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ftruncate(SB) - GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getegid(SB) - GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_geteuid(SB) - GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getgid(SB) - GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpgid(SB) - GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpgrp(SB) - GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpid(SB) - GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getppid(SB) - GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpriority(SB) - GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getrlimit(SB) - GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getrtable(SB) - GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getrusage(SB) - GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsid(SB) - GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_gettimeofday(SB) - GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getuid(SB) - GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_issetugid(SB) - GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kill(SB) - GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kqueue(SB) - GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lchown(SB) - GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_link(SB) - GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_linkat(SB) - GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_listen(SB) - GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lstat(SB) - GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkdir(SB) - GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkdirat(SB) - GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkfifo(SB) - GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkfifoat(SB) - GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mknod(SB) - GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mknodat(SB) - GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_nanosleep(SB) - GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_open(SB) - GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_openat(SB) - GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pathconf(SB) - GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pread(SB) - GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pwrite(SB) - GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_read(SB) - GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_readlink(SB) - GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_readlinkat(SB) - GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_rename(SB) - GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_renameat(SB) - GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_revoke(SB) - GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_rmdir(SB) - GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lseek(SB) - GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_select(SB) - GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setegid(SB) - GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_seteuid(SB) - GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setgid(SB) - GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setlogin(SB) - GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setpgid(SB) - GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setpriority(SB) - GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setregid(SB) - GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setreuid(SB) - GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setresgid(SB) - GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setresuid(SB) - GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setrlimit(SB) - GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $8 DATA ·libc_setrlimit_trampoline_addr(SB)/8, $libc_setrlimit_trampoline<>(SB) TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setrtable(SB) - GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setsid(SB) - GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_settimeofday(SB) - GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setuid(SB) - GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_stat(SB) - GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_statfs(SB) - GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_symlink(SB) - GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_symlinkat(SB) - GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sync(SB) - GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_truncate(SB) - GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_umask(SB) - GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unlink(SB) - GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unlinkat(SB) - GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unmount(SB) - GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_write(SB) - GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mmap(SB) - GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munmap(SB) - GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_utimensat(SB) - GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go index 8da6791d1..b2da8e50c 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go @@ -696,6 +696,20 @@ var libc_chroot_trampoline_addr uintptr // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s index 9ad116d9f..cf310420c 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s @@ -5,792 +5,665 @@ TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getgroups(SB) - GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $4 DATA ·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB) TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setgroups(SB) - GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $4 DATA ·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB) TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_wait4(SB) - GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $4 DATA ·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB) TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_accept(SB) - GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $4 DATA ·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB) TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_bind(SB) - GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $4 DATA ·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB) TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_connect(SB) - GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $4 DATA ·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB) TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_socket(SB) - GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $4 DATA ·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB) TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsockopt(SB) - GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $4 DATA ·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB) TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setsockopt(SB) - GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $4 DATA ·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB) TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpeername(SB) - GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $4 DATA ·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB) TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsockname(SB) - GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $4 DATA ·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB) TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_shutdown(SB) - GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $4 DATA ·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB) TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_socketpair(SB) - GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $4 DATA ·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB) TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_recvfrom(SB) - GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $4 DATA ·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB) TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sendto(SB) - GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $4 DATA ·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB) TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_recvmsg(SB) - GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $4 DATA ·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB) TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sendmsg(SB) - GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $4 DATA ·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB) TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kevent(SB) - GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $4 DATA ·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB) TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_utimes(SB) - GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $4 DATA ·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB) TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_futimes(SB) - GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $4 DATA ·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB) TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_poll(SB) - GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $4 DATA ·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB) TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_madvise(SB) - GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $4 DATA ·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB) TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mlock(SB) - GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $4 DATA ·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB) TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mlockall(SB) - GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $4 DATA ·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB) TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mprotect(SB) - GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $4 DATA ·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB) TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_msync(SB) - GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $4 DATA ·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB) TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munlock(SB) - GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $4 DATA ·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB) TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munlockall(SB) - GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $4 DATA ·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB) TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pipe2(SB) - GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $4 DATA ·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB) TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getdents(SB) - GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $4 DATA ·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB) TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getcwd(SB) - GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4 DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB) TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) - GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4 DATA ·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB) TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sysctl(SB) - GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $4 DATA ·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB) TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ppoll(SB) - GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $4 DATA ·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB) TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_access(SB) - GLOBL ·libc_access_trampoline_addr(SB), RODATA, $4 DATA ·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB) TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_adjtime(SB) - GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $4 DATA ·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB) TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chdir(SB) - GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $4 DATA ·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB) TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chflags(SB) - GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $4 DATA ·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB) TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chmod(SB) - GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $4 DATA ·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB) TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chown(SB) - GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $4 DATA ·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB) TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chroot(SB) - GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $4 DATA ·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB) +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $4 +DATA ·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB) + TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_close(SB) - GLOBL ·libc_close_trampoline_addr(SB), RODATA, $4 DATA ·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB) TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_dup(SB) - GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $4 DATA ·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB) TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_dup2(SB) - GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $4 DATA ·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB) TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_dup3(SB) - GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $4 DATA ·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB) TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_exit(SB) - GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $4 DATA ·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB) TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_faccessat(SB) - GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $4 DATA ·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB) TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchdir(SB) - GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $4 DATA ·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB) TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchflags(SB) - GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $4 DATA ·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB) TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchmod(SB) - GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $4 DATA ·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB) TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchmodat(SB) - GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $4 DATA ·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB) TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchown(SB) - GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $4 DATA ·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB) TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchownat(SB) - GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $4 DATA ·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB) TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_flock(SB) - GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $4 DATA ·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB) TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fpathconf(SB) - GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $4 DATA ·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB) TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstat(SB) - GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $4 DATA ·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB) TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstatat(SB) - GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $4 DATA ·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB) TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstatfs(SB) - GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $4 DATA ·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB) TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fsync(SB) - GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $4 DATA ·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB) TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ftruncate(SB) - GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $4 DATA ·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB) TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getegid(SB) - GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $4 DATA ·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB) TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_geteuid(SB) - GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $4 DATA ·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB) TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getgid(SB) - GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $4 DATA ·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB) TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpgid(SB) - GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $4 DATA ·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB) TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpgrp(SB) - GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $4 DATA ·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB) TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpid(SB) - GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $4 DATA ·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB) TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getppid(SB) - GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $4 DATA ·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB) TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpriority(SB) - GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $4 DATA ·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB) TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getrlimit(SB) - GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $4 DATA ·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB) TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getrtable(SB) - GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $4 DATA ·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB) TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getrusage(SB) - GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $4 DATA ·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB) TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsid(SB) - GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $4 DATA ·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB) TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_gettimeofday(SB) - GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $4 DATA ·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB) TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getuid(SB) - GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $4 DATA ·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB) TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_issetugid(SB) - GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $4 DATA ·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB) TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kill(SB) - GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $4 DATA ·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB) TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kqueue(SB) - GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $4 DATA ·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB) TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lchown(SB) - GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $4 DATA ·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB) TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_link(SB) - GLOBL ·libc_link_trampoline_addr(SB), RODATA, $4 DATA ·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB) TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_linkat(SB) - GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $4 DATA ·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB) TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_listen(SB) - GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $4 DATA ·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB) TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lstat(SB) - GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $4 DATA ·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB) TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkdir(SB) - GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $4 DATA ·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB) TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkdirat(SB) - GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $4 DATA ·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB) TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkfifo(SB) - GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $4 DATA ·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB) TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkfifoat(SB) - GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $4 DATA ·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB) TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mknod(SB) - GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $4 DATA ·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB) TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mknodat(SB) - GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $4 DATA ·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB) TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_nanosleep(SB) - GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $4 DATA ·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB) TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_open(SB) - GLOBL ·libc_open_trampoline_addr(SB), RODATA, $4 DATA ·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB) TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_openat(SB) - GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $4 DATA ·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB) TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pathconf(SB) - GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $4 DATA ·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB) TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pread(SB) - GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $4 DATA ·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB) TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pwrite(SB) - GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $4 DATA ·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB) TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_read(SB) - GLOBL ·libc_read_trampoline_addr(SB), RODATA, $4 DATA ·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB) TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_readlink(SB) - GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $4 DATA ·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB) TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_readlinkat(SB) - GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $4 DATA ·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB) TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_rename(SB) - GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $4 DATA ·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB) TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_renameat(SB) - GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $4 DATA ·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB) TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_revoke(SB) - GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $4 DATA ·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB) TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_rmdir(SB) - GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $4 DATA ·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB) TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lseek(SB) - GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $4 DATA ·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB) TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_select(SB) - GLOBL ·libc_select_trampoline_addr(SB), RODATA, $4 DATA ·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB) TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setegid(SB) - GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $4 DATA ·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB) TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_seteuid(SB) - GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $4 DATA ·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB) TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setgid(SB) - GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $4 DATA ·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB) TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setlogin(SB) - GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $4 DATA ·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB) TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setpgid(SB) - GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $4 DATA ·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB) TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setpriority(SB) - GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $4 DATA ·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB) TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setregid(SB) - GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $4 DATA ·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB) TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setreuid(SB) - GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $4 DATA ·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB) TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setresgid(SB) - GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $4 DATA ·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB) TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setresuid(SB) - GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $4 DATA ·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB) TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setrlimit(SB) - GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $4 DATA ·libc_setrlimit_trampoline_addr(SB)/4, $libc_setrlimit_trampoline<>(SB) TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setrtable(SB) - GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $4 DATA ·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB) TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setsid(SB) - GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $4 DATA ·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB) TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_settimeofday(SB) - GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $4 DATA ·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB) TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setuid(SB) - GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $4 DATA ·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB) TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_stat(SB) - GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $4 DATA ·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB) TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_statfs(SB) - GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $4 DATA ·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB) TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_symlink(SB) - GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $4 DATA ·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB) TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_symlinkat(SB) - GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $4 DATA ·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB) TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sync(SB) - GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $4 DATA ·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB) TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_truncate(SB) - GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $4 DATA ·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB) TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_umask(SB) - GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $4 DATA ·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB) TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unlink(SB) - GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $4 DATA ·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB) TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unlinkat(SB) - GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $4 DATA ·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB) TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unmount(SB) - GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $4 DATA ·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB) TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_write(SB) - GLOBL ·libc_write_trampoline_addr(SB), RODATA, $4 DATA ·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB) TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mmap(SB) - GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $4 DATA ·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB) TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munmap(SB) - GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $4 DATA ·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB) TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_utimensat(SB) - GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $4 DATA ·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go index 800aab6e3..048b2655e 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go @@ -696,6 +696,20 @@ var libc_chroot_trampoline_addr uintptr // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s index 4efeff9ab..484bb42e0 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s @@ -5,792 +5,665 @@ TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getgroups(SB) - GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setgroups(SB) - GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_wait4(SB) - GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_accept(SB) - GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_bind(SB) - GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_connect(SB) - GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_socket(SB) - GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsockopt(SB) - GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setsockopt(SB) - GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpeername(SB) - GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsockname(SB) - GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_shutdown(SB) - GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_socketpair(SB) - GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_recvfrom(SB) - GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sendto(SB) - GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_recvmsg(SB) - GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sendmsg(SB) - GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kevent(SB) - GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_utimes(SB) - GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_futimes(SB) - GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_poll(SB) - GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_madvise(SB) - GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mlock(SB) - GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mlockall(SB) - GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mprotect(SB) - GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_msync(SB) - GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munlock(SB) - GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munlockall(SB) - GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pipe2(SB) - GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getdents(SB) - GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getcwd(SB) - GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) - GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sysctl(SB) - GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ppoll(SB) - GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_access(SB) - GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_adjtime(SB) - GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chdir(SB) - GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chflags(SB) - GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chmod(SB) - GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chown(SB) - GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chroot(SB) - GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_close(SB) - GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_dup(SB) - GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_dup2(SB) - GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_dup3(SB) - GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_exit(SB) - GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_faccessat(SB) - GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchdir(SB) - GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchflags(SB) - GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchmod(SB) - GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchmodat(SB) - GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchown(SB) - GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchownat(SB) - GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_flock(SB) - GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fpathconf(SB) - GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstat(SB) - GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstatat(SB) - GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstatfs(SB) - GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fsync(SB) - GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ftruncate(SB) - GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getegid(SB) - GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_geteuid(SB) - GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getgid(SB) - GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpgid(SB) - GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpgrp(SB) - GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpid(SB) - GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getppid(SB) - GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpriority(SB) - GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getrlimit(SB) - GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getrtable(SB) - GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getrusage(SB) - GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsid(SB) - GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_gettimeofday(SB) - GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getuid(SB) - GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_issetugid(SB) - GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kill(SB) - GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kqueue(SB) - GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lchown(SB) - GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_link(SB) - GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_linkat(SB) - GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_listen(SB) - GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lstat(SB) - GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkdir(SB) - GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkdirat(SB) - GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkfifo(SB) - GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkfifoat(SB) - GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mknod(SB) - GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mknodat(SB) - GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_nanosleep(SB) - GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_open(SB) - GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_openat(SB) - GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pathconf(SB) - GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pread(SB) - GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pwrite(SB) - GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_read(SB) - GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_readlink(SB) - GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_readlinkat(SB) - GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_rename(SB) - GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_renameat(SB) - GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_revoke(SB) - GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_rmdir(SB) - GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lseek(SB) - GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_select(SB) - GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setegid(SB) - GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_seteuid(SB) - GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setgid(SB) - GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setlogin(SB) - GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setpgid(SB) - GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setpriority(SB) - GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setregid(SB) - GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setreuid(SB) - GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setresgid(SB) - GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setresuid(SB) - GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setrlimit(SB) - GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $8 DATA ·libc_setrlimit_trampoline_addr(SB)/8, $libc_setrlimit_trampoline<>(SB) TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setrtable(SB) - GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setsid(SB) - GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_settimeofday(SB) - GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setuid(SB) - GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_stat(SB) - GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_statfs(SB) - GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_symlink(SB) - GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_symlinkat(SB) - GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sync(SB) - GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_truncate(SB) - GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_umask(SB) - GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unlink(SB) - GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unlinkat(SB) - GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unmount(SB) - GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_write(SB) - GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mmap(SB) - GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munmap(SB) - GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_utimensat(SB) - GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go index 016d959bc..6f33e37e7 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go @@ -1,4 +1,4 @@ -// go run mksyscall.go -openbsd -tags openbsd,mips64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_mips64.go +// go run mksyscall.go -openbsd -libc -tags openbsd,mips64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_mips64.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build openbsd && mips64 @@ -16,7 +16,7 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -24,20 +24,28 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) { return } +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) wpid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -45,10 +53,14 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err return } +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -56,30 +68,42 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { return } +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -87,66 +111,94 @@ func socket(domain int, typ int, proto int) (fd int, err error) { return } +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { @@ -156,7 +208,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -164,6 +216,10 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl return } +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { @@ -173,17 +229,21 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -191,10 +251,14 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -202,10 +266,14 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -213,6 +281,10 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne return } +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func utimes(path string, timeval *[2]Timeval) (err error) { @@ -221,27 +293,35 @@ func utimes(path string, timeval *[2]Timeval) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -249,6 +329,10 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { return } +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Madvise(b []byte, behav int) (err error) { @@ -258,13 +342,17 @@ func Madvise(b []byte, behav int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlock(b []byte) (err error) { @@ -274,23 +362,31 @@ func Mlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mprotect(b []byte, prot int) (err error) { @@ -300,13 +396,17 @@ func Mprotect(b []byte, prot int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Msync(b []byte, flags int) (err error) { @@ -316,13 +416,17 @@ func Msync(b []byte, flags int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlock(b []byte) (err error) { @@ -332,33 +436,45 @@ func Munlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getdents(fd int, buf []byte) (n int, err error) { @@ -368,7 +484,7 @@ func Getdents(fd int, buf []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -376,6 +492,10 @@ func Getdents(fd int, buf []byte) (n int, err error) { return } +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getcwd(buf []byte) (n int, err error) { @@ -385,7 +505,7 @@ func Getcwd(buf []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -393,16 +513,24 @@ func Getcwd(buf []byte) (n int, err error) { return } +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { @@ -412,17 +540,21 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -430,6 +562,10 @@ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, return } +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Access(path string, mode uint32) (err error) { @@ -438,23 +574,31 @@ func Access(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chdir(path string) (err error) { @@ -463,13 +607,17 @@ func Chdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chflags(path string, flags int) (err error) { @@ -478,13 +626,17 @@ func Chflags(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chmod(path string, mode uint32) (err error) { @@ -493,13 +645,17 @@ func Chmod(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chown(path string, uid int, gid int) (err error) { @@ -508,13 +664,17 @@ func Chown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chroot(path string) (err error) { @@ -523,27 +683,49 @@ func Chroot(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) nfd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -551,33 +733,49 @@ func Dup(fd int) (nfd int, err error) { return } +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) return } +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -586,43 +784,59 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -631,23 +845,31 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { @@ -656,27 +878,35 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -684,16 +914,24 @@ func Fpathconf(fd int, name int) (val int, err error) { return } +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { @@ -702,71 +940,99 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) egid = int(r0) return } +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) uid = int(r0) return } +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) gid = int(r0) return } +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) pgid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -774,34 +1040,50 @@ func Getpgid(pid int) (pgid int, err error) { return } +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) pgrp = int(r0) return } +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) pid = int(r0) return } +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) ppid = int(r0) return } +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) prio = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -809,20 +1091,28 @@ func Getpriority(which int, who int) (prio int, err error) { return } +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrtable() (rtable int, err error) { - r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) rtable = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -830,20 +1120,28 @@ func Getrtable() (rtable int, err error) { return } +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) sid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -851,46 +1149,66 @@ func Getsid(pid int) (sid int, err error) { return } +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) uid = int(r0) return } +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) tainted = bool(r0 != 0) return } +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -898,6 +1216,10 @@ func Kqueue() (fd int, err error) { return } +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Lchown(path string, uid int, gid int) (err error) { @@ -906,13 +1228,17 @@ func Lchown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Link(path string, link string) (err error) { @@ -926,13 +1252,17 @@ func Link(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { @@ -946,23 +1276,31 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er if err != nil { return } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Lstat(path string, stat *Stat_t) (err error) { @@ -971,13 +1309,17 @@ func Lstat(path string, stat *Stat_t) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkdir(path string, mode uint32) (err error) { @@ -986,13 +1328,17 @@ func Mkdir(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkdirat(dirfd int, path string, mode uint32) (err error) { @@ -1001,13 +1347,17 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkfifo(path string, mode uint32) (err error) { @@ -1016,13 +1366,17 @@ func Mkfifo(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkfifoat(dirfd int, path string, mode uint32) (err error) { @@ -1031,13 +1385,17 @@ func Mkfifoat(dirfd int, path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mknod(path string, mode uint32, dev int) (err error) { @@ -1046,13 +1404,17 @@ func Mknod(path string, mode uint32, dev int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { @@ -1061,23 +1423,31 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Open(path string, mode int, perm uint32) (fd int, err error) { @@ -1086,7 +1456,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1094,6 +1464,10 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { return } +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { @@ -1102,7 +1476,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1110,6 +1484,10 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { return } +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Pathconf(path string, name int) (val int, err error) { @@ -1118,7 +1496,7 @@ func Pathconf(path string, name int) (val int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1126,6 +1504,10 @@ func Pathconf(path string, name int) (val int, err error) { return } +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pread(fd int, p []byte, offset int64) (n int, err error) { @@ -1135,7 +1517,7 @@ func pread(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) + r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1143,6 +1525,10 @@ func pread(fd int, p []byte, offset int64) (n int, err error) { return } +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pwrite(fd int, p []byte, offset int64) (n int, err error) { @@ -1152,7 +1538,7 @@ func pwrite(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) + r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1160,6 +1546,10 @@ func pwrite(fd int, p []byte, offset int64) (n int, err error) { return } +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func read(fd int, p []byte) (n int, err error) { @@ -1169,7 +1559,7 @@ func read(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1177,6 +1567,10 @@ func read(fd int, p []byte) (n int, err error) { return } +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlink(path string, buf []byte) (n int, err error) { @@ -1191,7 +1585,7 @@ func Readlink(path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1199,6 +1593,10 @@ func Readlink(path string, buf []byte) (n int, err error) { return } +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { @@ -1213,7 +1611,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1221,6 +1619,10 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { return } +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rename(from string, to string) (err error) { @@ -1234,13 +1636,17 @@ func Rename(from string, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Renameat(fromfd int, from string, tofd int, to string) (err error) { @@ -1254,13 +1660,17 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Revoke(path string) (err error) { @@ -1269,13 +1679,17 @@ func Revoke(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rmdir(path string) (err error) { @@ -1284,17 +1698,21 @@ func Rmdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) + r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) newoffset = int64(r0) if e1 != 0 { err = errnoErr(e1) @@ -1302,10 +1720,14 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { return } +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1313,36 +1735,52 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err return } +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setlogin(name string) (err error) { @@ -1351,97 +1789,133 @@ func Setlogin(name string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(libc_setrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setrtable(rtable int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) pid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1449,26 +1923,38 @@ func Setsid() (pid int, err error) { return } +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Stat(path string, stat *Stat_t) (err error) { @@ -1477,13 +1963,17 @@ func Stat(path string, stat *Stat_t) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Statfs(path string, stat *Statfs_t) (err error) { @@ -1492,13 +1982,17 @@ func Statfs(path string, stat *Statfs_t) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Symlink(path string, link string) (err error) { @@ -1512,13 +2006,17 @@ func Symlink(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { @@ -1532,23 +2030,31 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) if e1 != 0 { err = errnoErr(e1) } return } +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Truncate(path string, length int64) (err error) { @@ -1557,21 +2063,29 @@ func Truncate(path string, length int64) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) + _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) oldmask = int(r0) return } +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlink(path string) (err error) { @@ -1580,13 +2094,17 @@ func Unlink(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlinkat(dirfd int, path string, flags int) (err error) { @@ -1595,13 +2113,17 @@ func Unlinkat(dirfd int, path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unmount(path string, flags int) (err error) { @@ -1610,13 +2132,17 @@ func Unmount(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func write(fd int, p []byte) (n int, err error) { @@ -1626,7 +2152,7 @@ func write(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1634,10 +2160,14 @@ func write(fd int, p []byte) (n int, err error) { return } +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) + r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) ret = uintptr(r0) if e1 != 0 { err = errnoErr(e1) @@ -1645,20 +2175,28 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( return } +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1669,7 +2207,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1685,9 +2223,13 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error if err != nil { return } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s new file mode 100644 index 000000000..55af27263 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s @@ -0,0 +1,669 @@ +// go run mkasm.go openbsd mips64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe2(SB) +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdents(SB) +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ppoll(SB) +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup3(SB) +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrtable(SB) +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifoat(SB) +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknodat(SB) +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresgid(SB) +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresuid(SB) +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrlimit_trampoline_addr(SB)/8, $libc_setrlimit_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrtable(SB) +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go index c85de2d97..330cf7f7a 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go @@ -696,6 +696,20 @@ var libc_chroot_trampoline_addr uintptr // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s index 7c9223b64..4028255b0 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s @@ -249,6 +249,12 @@ TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_clock_gettime(SB) + RET +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 CALL libc_close(SB) RET diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go index 8e3e7873f..5f24de0d9 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go @@ -696,6 +696,20 @@ var libc_chroot_trampoline_addr uintptr // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s index 7dba78927..e1fbd4dfa 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s @@ -5,792 +5,665 @@ TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getgroups(SB) - GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setgroups(SB) - GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_wait4(SB) - GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_accept(SB) - GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_bind(SB) - GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_connect(SB) - GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_socket(SB) - GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsockopt(SB) - GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setsockopt(SB) - GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpeername(SB) - GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsockname(SB) - GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_shutdown(SB) - GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_socketpair(SB) - GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_recvfrom(SB) - GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sendto(SB) - GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_recvmsg(SB) - GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sendmsg(SB) - GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kevent(SB) - GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_utimes(SB) - GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_futimes(SB) - GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_poll(SB) - GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_madvise(SB) - GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mlock(SB) - GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mlockall(SB) - GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mprotect(SB) - GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_msync(SB) - GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munlock(SB) - GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munlockall(SB) - GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pipe2(SB) - GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getdents(SB) - GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getcwd(SB) - GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) - GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sysctl(SB) - GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ppoll(SB) - GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_access(SB) - GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_adjtime(SB) - GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chdir(SB) - GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chflags(SB) - GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chmod(SB) - GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chown(SB) - GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_chroot(SB) - GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_close(SB) - GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_dup(SB) - GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_dup2(SB) - GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_dup3(SB) - GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_exit(SB) - GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_faccessat(SB) - GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchdir(SB) - GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchflags(SB) - GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchmod(SB) - GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchmodat(SB) - GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchown(SB) - GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fchownat(SB) - GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_flock(SB) - GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fpathconf(SB) - GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstat(SB) - GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstatat(SB) - GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fstatfs(SB) - GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_fsync(SB) - GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ftruncate(SB) - GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getegid(SB) - GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_geteuid(SB) - GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getgid(SB) - GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpgid(SB) - GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpgrp(SB) - GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpid(SB) - GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getppid(SB) - GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getpriority(SB) - GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getrlimit(SB) - GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getrtable(SB) - GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getrusage(SB) - GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getsid(SB) - GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_gettimeofday(SB) - GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getuid(SB) - GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_issetugid(SB) - GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kill(SB) - GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_kqueue(SB) - GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lchown(SB) - GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_link(SB) - GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_linkat(SB) - GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_listen(SB) - GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lstat(SB) - GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkdir(SB) - GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkdirat(SB) - GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkfifo(SB) - GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mkfifoat(SB) - GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mknod(SB) - GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mknodat(SB) - GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_nanosleep(SB) - GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_open(SB) - GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_openat(SB) - GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pathconf(SB) - GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pread(SB) - GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pwrite(SB) - GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_read(SB) - GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_readlink(SB) - GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_readlinkat(SB) - GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_rename(SB) - GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_renameat(SB) - GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_revoke(SB) - GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_rmdir(SB) - GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_lseek(SB) - GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_select(SB) - GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setegid(SB) - GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_seteuid(SB) - GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setgid(SB) - GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setlogin(SB) - GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setpgid(SB) - GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setpriority(SB) - GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setregid(SB) - GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setreuid(SB) - GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setresgid(SB) - GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setresuid(SB) - GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setrlimit(SB) - GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $8 DATA ·libc_setrlimit_trampoline_addr(SB)/8, $libc_setrlimit_trampoline<>(SB) TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setrtable(SB) - GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setsid(SB) - GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_settimeofday(SB) - GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_setuid(SB) - GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_stat(SB) - GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_statfs(SB) - GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_symlink(SB) - GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_symlinkat(SB) - GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sync(SB) - GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_truncate(SB) - GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_umask(SB) - GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unlink(SB) - GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unlinkat(SB) - GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_unmount(SB) - GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_write(SB) - GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_mmap(SB) - GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_munmap(SB) - GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_utimensat(SB) - GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go index 91f5a2bde..78d4a4240 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go @@ -38,6 +38,7 @@ import ( //go:cgo_import_dynamic libc_chmod chmod "libc.so" //go:cgo_import_dynamic libc_chown chown "libc.so" //go:cgo_import_dynamic libc_chroot chroot "libc.so" +//go:cgo_import_dynamic libc_clockgettime clockgettime "libc.so" //go:cgo_import_dynamic libc_close close "libc.so" //go:cgo_import_dynamic libc_creat creat "libc.so" //go:cgo_import_dynamic libc_dup dup "libc.so" @@ -177,6 +178,7 @@ import ( //go:linkname procChmod libc_chmod //go:linkname procChown libc_chown //go:linkname procChroot libc_chroot +//go:linkname procClockGettime libc_clockgettime //go:linkname procClose libc_close //go:linkname procCreat libc_creat //go:linkname procDup libc_dup @@ -317,6 +319,7 @@ var ( procChmod, procChown, procChroot, + procClockGettime, procClose, procCreat, procDup, @@ -750,6 +753,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClockGettime)), 2, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClose)), 1, uintptr(fd), 0, 0, 0, 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go index 9e9d0b2a9..55e048471 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go @@ -17,6 +17,7 @@ var sysctlMib = []mibentry{ {"ddb.max_line", []_C_int{9, 3}}, {"ddb.max_width", []_C_int{9, 2}}, {"ddb.panic", []_C_int{9, 5}}, + {"ddb.profile", []_C_int{9, 9}}, {"ddb.radix", []_C_int{9, 1}}, {"ddb.tab_stop_width", []_C_int{9, 4}}, {"ddb.trigger", []_C_int{9, 8}}, @@ -33,29 +34,37 @@ var sysctlMib = []mibentry{ {"hw.ncpufound", []_C_int{6, 21}}, {"hw.ncpuonline", []_C_int{6, 25}}, {"hw.pagesize", []_C_int{6, 7}}, + {"hw.perfpolicy", []_C_int{6, 23}}, {"hw.physmem", []_C_int{6, 19}}, + {"hw.power", []_C_int{6, 26}}, {"hw.product", []_C_int{6, 15}}, {"hw.serialno", []_C_int{6, 17}}, {"hw.setperf", []_C_int{6, 13}}, + {"hw.smt", []_C_int{6, 24}}, {"hw.usermem", []_C_int{6, 20}}, {"hw.uuid", []_C_int{6, 18}}, {"hw.vendor", []_C_int{6, 14}}, {"hw.version", []_C_int{6, 16}}, - {"kern.arandom", []_C_int{1, 37}}, + {"kern.allowdt", []_C_int{1, 65}}, + {"kern.allowkmem", []_C_int{1, 52}}, {"kern.argmax", []_C_int{1, 8}}, + {"kern.audio", []_C_int{1, 84}}, {"kern.boottime", []_C_int{1, 21}}, {"kern.bufcachepercent", []_C_int{1, 72}}, {"kern.ccpu", []_C_int{1, 45}}, {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consbuf", []_C_int{1, 83}}, + {"kern.consbufsize", []_C_int{1, 82}}, {"kern.consdev", []_C_int{1, 75}}, {"kern.cp_time", []_C_int{1, 40}}, {"kern.cp_time2", []_C_int{1, 71}}, - {"kern.cryptodevallowsoft", []_C_int{1, 53}}, + {"kern.cpustats", []_C_int{1, 85}}, {"kern.domainname", []_C_int{1, 22}}, {"kern.file", []_C_int{1, 73}}, {"kern.forkstat", []_C_int{1, 42}}, {"kern.fscale", []_C_int{1, 46}}, {"kern.fsync", []_C_int{1, 33}}, + {"kern.global_ptrace", []_C_int{1, 81}}, {"kern.hostid", []_C_int{1, 11}}, {"kern.hostname", []_C_int{1, 10}}, {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, @@ -78,17 +87,16 @@ var sysctlMib = []mibentry{ {"kern.ngroups", []_C_int{1, 18}}, {"kern.nosuidcoredump", []_C_int{1, 32}}, {"kern.nprocs", []_C_int{1, 47}}, - {"kern.nselcoll", []_C_int{1, 43}}, {"kern.nthreads", []_C_int{1, 26}}, {"kern.numvnodes", []_C_int{1, 58}}, {"kern.osrelease", []_C_int{1, 2}}, {"kern.osrevision", []_C_int{1, 3}}, {"kern.ostype", []_C_int{1, 1}}, {"kern.osversion", []_C_int{1, 27}}, + {"kern.pfstatus", []_C_int{1, 86}}, {"kern.pool_debug", []_C_int{1, 77}}, {"kern.posix1version", []_C_int{1, 17}}, {"kern.proc", []_C_int{1, 66}}, - {"kern.random", []_C_int{1, 31}}, {"kern.rawpartition", []_C_int{1, 24}}, {"kern.saved_ids", []_C_int{1, 20}}, {"kern.securelevel", []_C_int{1, 9}}, @@ -106,21 +114,20 @@ var sysctlMib = []mibentry{ {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, {"kern.timecounter.tick", []_C_int{1, 69, 1}}, {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, - {"kern.tty.maxptys", []_C_int{1, 44, 6}}, - {"kern.tty.nptys", []_C_int{1, 44, 7}}, + {"kern.timeout_stats", []_C_int{1, 87}}, {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, {"kern.ttycount", []_C_int{1, 57}}, - {"kern.userasymcrypto", []_C_int{1, 60}}, - {"kern.usercrypto", []_C_int{1, 52}}, - {"kern.usermount", []_C_int{1, 30}}, + {"kern.utc_offset", []_C_int{1, 88}}, {"kern.version", []_C_int{1, 4}}, - {"kern.vnode", []_C_int{1, 13}}, + {"kern.video", []_C_int{1, 89}}, {"kern.watchdog.auto", []_C_int{1, 64, 2}}, {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.witnesswatch", []_C_int{1, 53}}, + {"kern.wxabort", []_C_int{1, 74}}, {"net.bpf.bufsize", []_C_int{4, 31, 1}}, {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, @@ -148,7 +155,9 @@ var sysctlMib = []mibentry{ {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, @@ -157,8 +166,10 @@ var sysctlMib = []mibentry{ {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, @@ -175,9 +186,7 @@ var sysctlMib = []mibentry{ {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, - {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}}, {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, - {"net.inet.pim.stats", []_C_int{4, 2, 103, 1}}, {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, @@ -191,6 +200,7 @@ var sysctlMib = []mibentry{ {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, @@ -198,9 +208,12 @@ var sysctlMib = []mibentry{ {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, + {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, @@ -213,13 +226,8 @@ var sysctlMib = []mibentry{ {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, - {"net.inet6.icmp6.nd6_prune", []_C_int{4, 24, 30, 6}}, {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, - {"net.inet6.icmp6.nd6_useloopback", []_C_int{4, 24, 30, 11}}, - {"net.inet6.icmp6.nodeinfo", []_C_int{4, 24, 30, 13}}, - {"net.inet6.icmp6.rediraccept", []_C_int{4, 24, 30, 2}}, {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, - {"net.inet6.ip6.accept_rtadv", []_C_int{4, 24, 17, 12}}, {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, @@ -232,20 +240,19 @@ var sysctlMib = []mibentry{ {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, - {"net.inet6.ip6.maxifdefrouters", []_C_int{4, 24, 17, 47}}, - {"net.inet6.ip6.maxifprefixes", []_C_int{4, 24, 17, 46}}, {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, + {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, - {"net.inet6.ip6.rr_prune", []_C_int{4, 24, 17, 22}}, + {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, - {"net.inet6.ip6.v6only", []_C_int{4, 24, 17, 24}}, {"net.key.sadb_dump", []_C_int{4, 30, 1}}, {"net.key.spd_dump", []_C_int{4, 30, 2}}, {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, @@ -254,12 +261,12 @@ var sysctlMib = []mibentry{ {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, - {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}}, {"net.mpls.ttl", []_C_int{4, 33, 2}}, {"net.pflow.stats", []_C_int{4, 34, 1}}, {"net.pipex.enable", []_C_int{4, 35, 1}}, {"vm.anonmin", []_C_int{2, 7}}, {"vm.loadavg", []_C_int{2, 2}}, + {"vm.malloc_conf", []_C_int{2, 12}}, {"vm.maxslp", []_C_int{2, 10}}, {"vm.nkmempages", []_C_int{2, 6}}, {"vm.psstrings", []_C_int{2, 3}}, diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go index adecd0966..d2243cf83 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go @@ -36,23 +36,29 @@ var sysctlMib = []mibentry{ {"hw.pagesize", []_C_int{6, 7}}, {"hw.perfpolicy", []_C_int{6, 23}}, {"hw.physmem", []_C_int{6, 19}}, + {"hw.power", []_C_int{6, 26}}, {"hw.product", []_C_int{6, 15}}, {"hw.serialno", []_C_int{6, 17}}, {"hw.setperf", []_C_int{6, 13}}, + {"hw.smt", []_C_int{6, 24}}, {"hw.usermem", []_C_int{6, 20}}, {"hw.uuid", []_C_int{6, 18}}, {"hw.vendor", []_C_int{6, 14}}, {"hw.version", []_C_int{6, 16}}, + {"kern.allowdt", []_C_int{1, 65}}, {"kern.allowkmem", []_C_int{1, 52}}, {"kern.argmax", []_C_int{1, 8}}, + {"kern.audio", []_C_int{1, 84}}, {"kern.boottime", []_C_int{1, 21}}, {"kern.bufcachepercent", []_C_int{1, 72}}, {"kern.ccpu", []_C_int{1, 45}}, {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consbuf", []_C_int{1, 83}}, + {"kern.consbufsize", []_C_int{1, 82}}, {"kern.consdev", []_C_int{1, 75}}, {"kern.cp_time", []_C_int{1, 40}}, {"kern.cp_time2", []_C_int{1, 71}}, - {"kern.dnsjackport", []_C_int{1, 13}}, + {"kern.cpustats", []_C_int{1, 85}}, {"kern.domainname", []_C_int{1, 22}}, {"kern.file", []_C_int{1, 73}}, {"kern.forkstat", []_C_int{1, 42}}, @@ -81,13 +87,13 @@ var sysctlMib = []mibentry{ {"kern.ngroups", []_C_int{1, 18}}, {"kern.nosuidcoredump", []_C_int{1, 32}}, {"kern.nprocs", []_C_int{1, 47}}, - {"kern.nselcoll", []_C_int{1, 43}}, {"kern.nthreads", []_C_int{1, 26}}, {"kern.numvnodes", []_C_int{1, 58}}, {"kern.osrelease", []_C_int{1, 2}}, {"kern.osrevision", []_C_int{1, 3}}, {"kern.ostype", []_C_int{1, 1}}, {"kern.osversion", []_C_int{1, 27}}, + {"kern.pfstatus", []_C_int{1, 86}}, {"kern.pool_debug", []_C_int{1, 77}}, {"kern.posix1version", []_C_int{1, 17}}, {"kern.proc", []_C_int{1, 66}}, @@ -108,15 +114,19 @@ var sysctlMib = []mibentry{ {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, {"kern.timecounter.tick", []_C_int{1, 69, 1}}, {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.timeout_stats", []_C_int{1, 87}}, {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, {"kern.ttycount", []_C_int{1, 57}}, + {"kern.utc_offset", []_C_int{1, 88}}, {"kern.version", []_C_int{1, 4}}, + {"kern.video", []_C_int{1, 89}}, {"kern.watchdog.auto", []_C_int{1, 64, 2}}, {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.witnesswatch", []_C_int{1, 53}}, {"kern.wxabort", []_C_int{1, 74}}, {"net.bpf.bufsize", []_C_int{4, 31, 1}}, {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, @@ -176,7 +186,6 @@ var sysctlMib = []mibentry{ {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, - {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}}, {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, @@ -252,12 +261,12 @@ var sysctlMib = []mibentry{ {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, - {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}}, {"net.mpls.ttl", []_C_int{4, 33, 2}}, {"net.pflow.stats", []_C_int{4, 34, 1}}, {"net.pipex.enable", []_C_int{4, 35, 1}}, {"vm.anonmin", []_C_int{2, 7}}, {"vm.loadavg", []_C_int{2, 2}}, + {"vm.malloc_conf", []_C_int{2, 12}}, {"vm.maxslp", []_C_int{2, 10}}, {"vm.nkmempages", []_C_int{2, 6}}, {"vm.psstrings", []_C_int{2, 3}}, diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go index 8ea52a4a1..82dc51bd8 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go @@ -17,6 +17,7 @@ var sysctlMib = []mibentry{ {"ddb.max_line", []_C_int{9, 3}}, {"ddb.max_width", []_C_int{9, 2}}, {"ddb.panic", []_C_int{9, 5}}, + {"ddb.profile", []_C_int{9, 9}}, {"ddb.radix", []_C_int{9, 1}}, {"ddb.tab_stop_width", []_C_int{9, 4}}, {"ddb.trigger", []_C_int{9, 8}}, @@ -33,29 +34,37 @@ var sysctlMib = []mibentry{ {"hw.ncpufound", []_C_int{6, 21}}, {"hw.ncpuonline", []_C_int{6, 25}}, {"hw.pagesize", []_C_int{6, 7}}, + {"hw.perfpolicy", []_C_int{6, 23}}, {"hw.physmem", []_C_int{6, 19}}, + {"hw.power", []_C_int{6, 26}}, {"hw.product", []_C_int{6, 15}}, {"hw.serialno", []_C_int{6, 17}}, {"hw.setperf", []_C_int{6, 13}}, + {"hw.smt", []_C_int{6, 24}}, {"hw.usermem", []_C_int{6, 20}}, {"hw.uuid", []_C_int{6, 18}}, {"hw.vendor", []_C_int{6, 14}}, {"hw.version", []_C_int{6, 16}}, - {"kern.arandom", []_C_int{1, 37}}, + {"kern.allowdt", []_C_int{1, 65}}, + {"kern.allowkmem", []_C_int{1, 52}}, {"kern.argmax", []_C_int{1, 8}}, + {"kern.audio", []_C_int{1, 84}}, {"kern.boottime", []_C_int{1, 21}}, {"kern.bufcachepercent", []_C_int{1, 72}}, {"kern.ccpu", []_C_int{1, 45}}, {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consbuf", []_C_int{1, 83}}, + {"kern.consbufsize", []_C_int{1, 82}}, {"kern.consdev", []_C_int{1, 75}}, {"kern.cp_time", []_C_int{1, 40}}, {"kern.cp_time2", []_C_int{1, 71}}, - {"kern.cryptodevallowsoft", []_C_int{1, 53}}, + {"kern.cpustats", []_C_int{1, 85}}, {"kern.domainname", []_C_int{1, 22}}, {"kern.file", []_C_int{1, 73}}, {"kern.forkstat", []_C_int{1, 42}}, {"kern.fscale", []_C_int{1, 46}}, {"kern.fsync", []_C_int{1, 33}}, + {"kern.global_ptrace", []_C_int{1, 81}}, {"kern.hostid", []_C_int{1, 11}}, {"kern.hostname", []_C_int{1, 10}}, {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, @@ -78,17 +87,16 @@ var sysctlMib = []mibentry{ {"kern.ngroups", []_C_int{1, 18}}, {"kern.nosuidcoredump", []_C_int{1, 32}}, {"kern.nprocs", []_C_int{1, 47}}, - {"kern.nselcoll", []_C_int{1, 43}}, {"kern.nthreads", []_C_int{1, 26}}, {"kern.numvnodes", []_C_int{1, 58}}, {"kern.osrelease", []_C_int{1, 2}}, {"kern.osrevision", []_C_int{1, 3}}, {"kern.ostype", []_C_int{1, 1}}, {"kern.osversion", []_C_int{1, 27}}, + {"kern.pfstatus", []_C_int{1, 86}}, {"kern.pool_debug", []_C_int{1, 77}}, {"kern.posix1version", []_C_int{1, 17}}, {"kern.proc", []_C_int{1, 66}}, - {"kern.random", []_C_int{1, 31}}, {"kern.rawpartition", []_C_int{1, 24}}, {"kern.saved_ids", []_C_int{1, 20}}, {"kern.securelevel", []_C_int{1, 9}}, @@ -106,21 +114,20 @@ var sysctlMib = []mibentry{ {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, {"kern.timecounter.tick", []_C_int{1, 69, 1}}, {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, - {"kern.tty.maxptys", []_C_int{1, 44, 6}}, - {"kern.tty.nptys", []_C_int{1, 44, 7}}, + {"kern.timeout_stats", []_C_int{1, 87}}, {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, {"kern.ttycount", []_C_int{1, 57}}, - {"kern.userasymcrypto", []_C_int{1, 60}}, - {"kern.usercrypto", []_C_int{1, 52}}, - {"kern.usermount", []_C_int{1, 30}}, + {"kern.utc_offset", []_C_int{1, 88}}, {"kern.version", []_C_int{1, 4}}, - {"kern.vnode", []_C_int{1, 13}}, + {"kern.video", []_C_int{1, 89}}, {"kern.watchdog.auto", []_C_int{1, 64, 2}}, {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.witnesswatch", []_C_int{1, 53}}, + {"kern.wxabort", []_C_int{1, 74}}, {"net.bpf.bufsize", []_C_int{4, 31, 1}}, {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, @@ -148,7 +155,9 @@ var sysctlMib = []mibentry{ {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, @@ -157,8 +166,10 @@ var sysctlMib = []mibentry{ {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, @@ -175,9 +186,7 @@ var sysctlMib = []mibentry{ {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, - {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}}, {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, - {"net.inet.pim.stats", []_C_int{4, 2, 103, 1}}, {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, @@ -191,6 +200,7 @@ var sysctlMib = []mibentry{ {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, @@ -198,9 +208,12 @@ var sysctlMib = []mibentry{ {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, + {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, @@ -213,13 +226,8 @@ var sysctlMib = []mibentry{ {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, - {"net.inet6.icmp6.nd6_prune", []_C_int{4, 24, 30, 6}}, {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, - {"net.inet6.icmp6.nd6_useloopback", []_C_int{4, 24, 30, 11}}, - {"net.inet6.icmp6.nodeinfo", []_C_int{4, 24, 30, 13}}, - {"net.inet6.icmp6.rediraccept", []_C_int{4, 24, 30, 2}}, {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, - {"net.inet6.ip6.accept_rtadv", []_C_int{4, 24, 17, 12}}, {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, @@ -232,20 +240,19 @@ var sysctlMib = []mibentry{ {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, - {"net.inet6.ip6.maxifdefrouters", []_C_int{4, 24, 17, 47}}, - {"net.inet6.ip6.maxifprefixes", []_C_int{4, 24, 17, 46}}, {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, + {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, - {"net.inet6.ip6.rr_prune", []_C_int{4, 24, 17, 22}}, + {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, - {"net.inet6.ip6.v6only", []_C_int{4, 24, 17, 24}}, {"net.key.sadb_dump", []_C_int{4, 30, 1}}, {"net.key.spd_dump", []_C_int{4, 30, 2}}, {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, @@ -254,12 +261,12 @@ var sysctlMib = []mibentry{ {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, - {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}}, {"net.mpls.ttl", []_C_int{4, 33, 2}}, {"net.pflow.stats", []_C_int{4, 34, 1}}, {"net.pipex.enable", []_C_int{4, 35, 1}}, {"vm.anonmin", []_C_int{2, 7}}, {"vm.loadavg", []_C_int{2, 2}}, + {"vm.malloc_conf", []_C_int{2, 12}}, {"vm.maxslp", []_C_int{2, 10}}, {"vm.nkmempages", []_C_int{2, 6}}, {"vm.psstrings", []_C_int{2, 3}}, diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go index 154b57ae3..cbdda1a4a 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go @@ -36,6 +36,7 @@ var sysctlMib = []mibentry{ {"hw.pagesize", []_C_int{6, 7}}, {"hw.perfpolicy", []_C_int{6, 23}}, {"hw.physmem", []_C_int{6, 19}}, + {"hw.power", []_C_int{6, 26}}, {"hw.product", []_C_int{6, 15}}, {"hw.serialno", []_C_int{6, 17}}, {"hw.setperf", []_C_int{6, 13}}, @@ -44,6 +45,7 @@ var sysctlMib = []mibentry{ {"hw.uuid", []_C_int{6, 18}}, {"hw.vendor", []_C_int{6, 14}}, {"hw.version", []_C_int{6, 16}}, + {"kern.allowdt", []_C_int{1, 65}}, {"kern.allowkmem", []_C_int{1, 52}}, {"kern.argmax", []_C_int{1, 8}}, {"kern.audio", []_C_int{1, 84}}, @@ -51,6 +53,8 @@ var sysctlMib = []mibentry{ {"kern.bufcachepercent", []_C_int{1, 72}}, {"kern.ccpu", []_C_int{1, 45}}, {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consbuf", []_C_int{1, 83}}, + {"kern.consbufsize", []_C_int{1, 82}}, {"kern.consdev", []_C_int{1, 75}}, {"kern.cp_time", []_C_int{1, 40}}, {"kern.cp_time2", []_C_int{1, 71}}, @@ -83,13 +87,13 @@ var sysctlMib = []mibentry{ {"kern.ngroups", []_C_int{1, 18}}, {"kern.nosuidcoredump", []_C_int{1, 32}}, {"kern.nprocs", []_C_int{1, 47}}, - {"kern.nselcoll", []_C_int{1, 43}}, {"kern.nthreads", []_C_int{1, 26}}, {"kern.numvnodes", []_C_int{1, 58}}, {"kern.osrelease", []_C_int{1, 2}}, {"kern.osrevision", []_C_int{1, 3}}, {"kern.ostype", []_C_int{1, 1}}, {"kern.osversion", []_C_int{1, 27}}, + {"kern.pfstatus", []_C_int{1, 86}}, {"kern.pool_debug", []_C_int{1, 77}}, {"kern.posix1version", []_C_int{1, 17}}, {"kern.proc", []_C_int{1, 66}}, @@ -110,13 +114,16 @@ var sysctlMib = []mibentry{ {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, {"kern.timecounter.tick", []_C_int{1, 69, 1}}, {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.timeout_stats", []_C_int{1, 87}}, {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, {"kern.ttycount", []_C_int{1, 57}}, + {"kern.utc_offset", []_C_int{1, 88}}, {"kern.version", []_C_int{1, 4}}, + {"kern.video", []_C_int{1, 89}}, {"kern.watchdog.auto", []_C_int{1, 64, 2}}, {"kern.watchdog.period", []_C_int{1, 64, 1}}, {"kern.witnesswatch", []_C_int{1, 53}}, @@ -179,7 +186,6 @@ var sysctlMib = []mibentry{ {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, - {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}}, {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, @@ -255,7 +261,6 @@ var sysctlMib = []mibentry{ {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, - {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}}, {"net.mpls.ttl", []_C_int{4, 33, 2}}, {"net.pflow.stats", []_C_int{4, 34, 1}}, {"net.pipex.enable", []_C_int{4, 35, 1}}, diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go index d96bb2ba4..f55eae1a8 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go @@ -36,6 +36,7 @@ var sysctlMib = []mibentry{ {"hw.pagesize", []_C_int{6, 7}}, {"hw.perfpolicy", []_C_int{6, 23}}, {"hw.physmem", []_C_int{6, 19}}, + {"hw.power", []_C_int{6, 26}}, {"hw.product", []_C_int{6, 15}}, {"hw.serialno", []_C_int{6, 17}}, {"hw.setperf", []_C_int{6, 13}}, @@ -86,7 +87,6 @@ var sysctlMib = []mibentry{ {"kern.ngroups", []_C_int{1, 18}}, {"kern.nosuidcoredump", []_C_int{1, 32}}, {"kern.nprocs", []_C_int{1, 47}}, - {"kern.nselcoll", []_C_int{1, 43}}, {"kern.nthreads", []_C_int{1, 26}}, {"kern.numvnodes", []_C_int{1, 58}}, {"kern.osrelease", []_C_int{1, 2}}, @@ -123,6 +123,7 @@ var sysctlMib = []mibentry{ {"kern.ttycount", []_C_int{1, 57}}, {"kern.utc_offset", []_C_int{1, 88}}, {"kern.version", []_C_int{1, 4}}, + {"kern.video", []_C_int{1, 89}}, {"kern.watchdog.auto", []_C_int{1, 64, 2}}, {"kern.watchdog.period", []_C_int{1, 64, 1}}, {"kern.witnesswatch", []_C_int{1, 53}}, diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go index a37f77375..01c43a01f 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go @@ -6,6 +6,7 @@ package unix +// Deprecated: Use libc wrappers instead of direct syscalls. const ( SYS_EXIT = 1 // { void sys_exit(int rval); } SYS_FORK = 2 // { int sys_fork(void); } diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go index ff6881167..7d9fc8f1c 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go @@ -29,6 +29,41 @@ type Itimerval struct { Value Timeval } +const ( + ADJ_OFFSET = 0x1 + ADJ_FREQUENCY = 0x2 + ADJ_MAXERROR = 0x4 + ADJ_ESTERROR = 0x8 + ADJ_STATUS = 0x10 + ADJ_TIMECONST = 0x20 + ADJ_TAI = 0x80 + ADJ_SETOFFSET = 0x100 + ADJ_MICRO = 0x1000 + ADJ_NANO = 0x2000 + ADJ_TICK = 0x4000 + ADJ_OFFSET_SINGLESHOT = 0x8001 + ADJ_OFFSET_SS_READ = 0xa001 +) + +const ( + STA_PLL = 0x1 + STA_PPSFREQ = 0x2 + STA_PPSTIME = 0x4 + STA_FLL = 0x8 + STA_INS = 0x10 + STA_DEL = 0x20 + STA_UNSYNC = 0x40 + STA_FREQHOLD = 0x80 + STA_PPSSIGNAL = 0x100 + STA_PPSJITTER = 0x200 + STA_PPSWANDER = 0x400 + STA_PPSERROR = 0x800 + STA_CLOCKERR = 0x1000 + STA_NANO = 0x2000 + STA_MODE = 0x4000 + STA_CLK = 0x8000 +) + const ( TIME_OK = 0x0 TIME_INS = 0x1 @@ -53,29 +88,30 @@ type StatxTimestamp struct { } type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - Mnt_id uint64 - _ uint64 - _ [12]uint64 + Mask uint32 + Blksize uint32 + Attributes uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Mode uint16 + _ [1]uint16 + Ino uint64 + Size uint64 + Blocks uint64 + Attributes_mask uint64 + Atime StatxTimestamp + Btime StatxTimestamp + Ctime StatxTimestamp + Mtime StatxTimestamp + Rdev_major uint32 + Rdev_minor uint32 + Dev_major uint32 + Dev_minor uint32 + Mnt_id uint64 + Dio_mem_align uint32 + Dio_offset_align uint32 + _ [12]uint64 } type Fsid struct { @@ -1099,7 +1135,8 @@ const ( PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 0xf PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 0x10 PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 0x11 - PERF_SAMPLE_BRANCH_MAX_SHIFT = 0x12 + PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT = 0x12 + PERF_SAMPLE_BRANCH_MAX_SHIFT = 0x13 PERF_SAMPLE_BRANCH_USER = 0x1 PERF_SAMPLE_BRANCH_KERNEL = 0x2 PERF_SAMPLE_BRANCH_HV = 0x4 @@ -1118,7 +1155,8 @@ const ( PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 PERF_SAMPLE_BRANCH_HW_INDEX = 0x20000 - PERF_SAMPLE_BRANCH_MAX = 0x40000 + PERF_SAMPLE_BRANCH_PRIV_SAVE = 0x40000 + PERF_SAMPLE_BRANCH_MAX = 0x80000 PERF_BR_UNKNOWN = 0x0 PERF_BR_COND = 0x1 PERF_BR_UNCOND = 0x2 @@ -1132,7 +1170,10 @@ const ( PERF_BR_COND_RET = 0xa PERF_BR_ERET = 0xb PERF_BR_IRQ = 0xc - PERF_BR_MAX = 0xd + PERF_BR_SERROR = 0xd + PERF_BR_NO_TX = 0xe + PERF_BR_EXTEND_ABI = 0xf + PERF_BR_MAX = 0x10 PERF_SAMPLE_REGS_ABI_NONE = 0x0 PERF_SAMPLE_REGS_ABI_32 = 0x1 PERF_SAMPLE_REGS_ABI_64 = 0x2 @@ -1151,7 +1192,8 @@ const ( PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_ID = 0x4 PERF_FORMAT_GROUP = 0x8 - PERF_FORMAT_MAX = 0x10 + PERF_FORMAT_LOST = 0x10 + PERF_FORMAT_MAX = 0x20 PERF_IOC_FLAG_GROUP = 0x1 PERF_RECORD_MMAP = 0x1 PERF_RECORD_LOST = 0x2 @@ -2979,7 +3021,16 @@ const ( DEVLINK_CMD_TRAP_POLICER_NEW = 0x47 DEVLINK_CMD_TRAP_POLICER_DEL = 0x48 DEVLINK_CMD_HEALTH_REPORTER_TEST = 0x49 - DEVLINK_CMD_MAX = 0x51 + DEVLINK_CMD_RATE_GET = 0x4a + DEVLINK_CMD_RATE_SET = 0x4b + DEVLINK_CMD_RATE_NEW = 0x4c + DEVLINK_CMD_RATE_DEL = 0x4d + DEVLINK_CMD_LINECARD_GET = 0x4e + DEVLINK_CMD_LINECARD_SET = 0x4f + DEVLINK_CMD_LINECARD_NEW = 0x50 + DEVLINK_CMD_LINECARD_DEL = 0x51 + DEVLINK_CMD_SELFTESTS_GET = 0x52 + DEVLINK_CMD_MAX = 0x53 DEVLINK_PORT_TYPE_NOTSET = 0x0 DEVLINK_PORT_TYPE_AUTO = 0x1 DEVLINK_PORT_TYPE_ETH = 0x2 @@ -3208,7 +3259,13 @@ const ( DEVLINK_ATTR_RATE_NODE_NAME = 0xa8 DEVLINK_ATTR_RATE_PARENT_NODE_NAME = 0xa9 DEVLINK_ATTR_REGION_MAX_SNAPSHOTS = 0xaa - DEVLINK_ATTR_MAX = 0xae + DEVLINK_ATTR_LINECARD_INDEX = 0xab + DEVLINK_ATTR_LINECARD_STATE = 0xac + DEVLINK_ATTR_LINECARD_TYPE = 0xad + DEVLINK_ATTR_LINECARD_SUPPORTED_TYPES = 0xae + DEVLINK_ATTR_NESTED_DEVLINK = 0xaf + DEVLINK_ATTR_SELFTESTS = 0xb0 + DEVLINK_ATTR_MAX = 0xb0 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1 DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0 @@ -3317,7 +3374,8 @@ const ( LWTUNNEL_ENCAP_SEG6_LOCAL = 0x7 LWTUNNEL_ENCAP_RPL = 0x8 LWTUNNEL_ENCAP_IOAM6 = 0x9 - LWTUNNEL_ENCAP_MAX = 0x9 + LWTUNNEL_ENCAP_XFRM = 0xa + LWTUNNEL_ENCAP_MAX = 0xa MPLS_IPTUNNEL_UNSPEC = 0x0 MPLS_IPTUNNEL_DST = 0x1 @@ -3512,7 +3570,9 @@ const ( ETHTOOL_MSG_PHC_VCLOCKS_GET = 0x21 ETHTOOL_MSG_MODULE_GET = 0x22 ETHTOOL_MSG_MODULE_SET = 0x23 - ETHTOOL_MSG_USER_MAX = 0x23 + ETHTOOL_MSG_PSE_GET = 0x24 + ETHTOOL_MSG_PSE_SET = 0x25 + ETHTOOL_MSG_USER_MAX = 0x25 ETHTOOL_MSG_KERNEL_NONE = 0x0 ETHTOOL_MSG_STRSET_GET_REPLY = 0x1 ETHTOOL_MSG_LINKINFO_GET_REPLY = 0x2 @@ -3550,7 +3610,8 @@ const ( ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY = 0x22 ETHTOOL_MSG_MODULE_GET_REPLY = 0x23 ETHTOOL_MSG_MODULE_NTF = 0x24 - ETHTOOL_MSG_KERNEL_MAX = 0x24 + ETHTOOL_MSG_PSE_GET_REPLY = 0x25 + ETHTOOL_MSG_KERNEL_MAX = 0x25 ETHTOOL_A_HEADER_UNSPEC = 0x0 ETHTOOL_A_HEADER_DEV_INDEX = 0x1 ETHTOOL_A_HEADER_DEV_NAME = 0x2 @@ -3609,7 +3670,8 @@ const ( ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG = 0x7 ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE = 0x8 ETHTOOL_A_LINKMODES_LANES = 0x9 - ETHTOOL_A_LINKMODES_MAX = 0x9 + ETHTOOL_A_LINKMODES_RATE_MATCHING = 0xa + ETHTOOL_A_LINKMODES_MAX = 0xa ETHTOOL_A_LINKSTATE_UNSPEC = 0x0 ETHTOOL_A_LINKSTATE_HEADER = 0x1 ETHTOOL_A_LINKSTATE_LINK = 0x2 @@ -4201,6 +4263,9 @@ const ( NL80211_ACL_POLICY_DENY_UNLESS_LISTED = 0x1 NL80211_AC_VI = 0x1 NL80211_AC_VO = 0x0 + NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 0x1 + NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 0x2 + NL80211_AP_SME_SA_QUERY_OFFLOAD = 0x1 NL80211_ATTR_4ADDR = 0x53 NL80211_ATTR_ACK = 0x5c NL80211_ATTR_ACK_SIGNAL = 0x107 @@ -4209,6 +4274,7 @@ const ( NL80211_ATTR_AIRTIME_WEIGHT = 0x112 NL80211_ATTR_AKM_SUITES = 0x4c NL80211_ATTR_AP_ISOLATE = 0x60 + NL80211_ATTR_AP_SETTINGS_FLAGS = 0x135 NL80211_ATTR_AUTH_DATA = 0x9c NL80211_ATTR_AUTH_TYPE = 0x35 NL80211_ATTR_BANDS = 0xef @@ -4240,6 +4306,9 @@ const ( NL80211_ATTR_COALESCE_RULE_DELAY = 0x1 NL80211_ATTR_COALESCE_RULE_MAX = 0x3 NL80211_ATTR_COALESCE_RULE_PKT_PATTERN = 0x3 + NL80211_ATTR_COLOR_CHANGE_COLOR = 0x130 + NL80211_ATTR_COLOR_CHANGE_COUNT = 0x12f + NL80211_ATTR_COLOR_CHANGE_ELEMS = 0x131 NL80211_ATTR_CONN_FAILED_REASON = 0x9b NL80211_ATTR_CONTROL_PORT = 0x44 NL80211_ATTR_CONTROL_PORT_ETHERTYPE = 0x66 @@ -4266,6 +4335,7 @@ const ( NL80211_ATTR_DEVICE_AP_SME = 0x8d NL80211_ATTR_DFS_CAC_TIME = 0x7 NL80211_ATTR_DFS_REGION = 0x92 + NL80211_ATTR_DISABLE_EHT = 0x137 NL80211_ATTR_DISABLE_HE = 0x12d NL80211_ATTR_DISABLE_HT = 0x93 NL80211_ATTR_DISABLE_VHT = 0xaf @@ -4273,6 +4343,8 @@ const ( NL80211_ATTR_DONT_WAIT_FOR_ACK = 0x8e NL80211_ATTR_DTIM_PERIOD = 0xd NL80211_ATTR_DURATION = 0x57 + NL80211_ATTR_EHT_CAPABILITY = 0x136 + NL80211_ATTR_EML_CAPABILITY = 0x13d NL80211_ATTR_EXT_CAPA = 0xa9 NL80211_ATTR_EXT_CAPA_MASK = 0xaa NL80211_ATTR_EXTERNAL_AUTH_ACTION = 0x104 @@ -4337,10 +4409,11 @@ const ( NL80211_ATTR_MAC_HINT = 0xc8 NL80211_ATTR_MAC_MASK = 0xd7 NL80211_ATTR_MAX_AP_ASSOC_STA = 0xca - NL80211_ATTR_MAX = 0x137 + NL80211_ATTR_MAX = 0x140 NL80211_ATTR_MAX_CRIT_PROT_DURATION = 0xb4 NL80211_ATTR_MAX_CSA_COUNTERS = 0xce NL80211_ATTR_MAX_MATCH_SETS = 0x85 + NL80211_ATTR_MAX_NUM_AKM_SUITES = 0x13c NL80211_ATTR_MAX_NUM_PMKIDS = 0x56 NL80211_ATTR_MAX_NUM_SCAN_SSIDS = 0x2b NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS = 0xde @@ -4350,6 +4423,8 @@ const ( NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL = 0xdf NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS = 0xe0 NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN = 0x7c + NL80211_ATTR_MBSSID_CONFIG = 0x132 + NL80211_ATTR_MBSSID_ELEMS = 0x133 NL80211_ATTR_MCAST_RATE = 0x6b NL80211_ATTR_MDID = 0xb1 NL80211_ATTR_MEASUREMENT_DURATION = 0xeb @@ -4359,6 +4434,11 @@ const ( NL80211_ATTR_MESH_PEER_AID = 0xed NL80211_ATTR_MESH_SETUP = 0x70 NL80211_ATTR_MGMT_SUBTYPE = 0x29 + NL80211_ATTR_MLD_ADDR = 0x13a + NL80211_ATTR_MLD_CAPA_AND_OPS = 0x13e + NL80211_ATTR_MLO_LINK_ID = 0x139 + NL80211_ATTR_MLO_LINKS = 0x138 + NL80211_ATTR_MLO_SUPPORT = 0x13b NL80211_ATTR_MNTR_FLAGS = 0x17 NL80211_ATTR_MPATH_INFO = 0x1b NL80211_ATTR_MPATH_NEXT_HOP = 0x1a @@ -4371,6 +4451,7 @@ const ( NL80211_ATTR_NETNS_FD = 0xdb NL80211_ATTR_NOACK_MAP = 0x95 NL80211_ATTR_NSS = 0x106 + NL80211_ATTR_OBSS_COLOR_BITMAP = 0x12e NL80211_ATTR_OFFCHANNEL_TX_OK = 0x6c NL80211_ATTR_OPER_CLASS = 0xd6 NL80211_ATTR_OPMODE_NOTIF = 0xc2 @@ -4397,6 +4478,7 @@ const ( NL80211_ATTR_PROTOCOL_FEATURES = 0xad NL80211_ATTR_PS_STATE = 0x5d NL80211_ATTR_QOS_MAP = 0xc7 + NL80211_ATTR_RADAR_BACKGROUND = 0x134 NL80211_ATTR_RADAR_EVENT = 0xa8 NL80211_ATTR_REASON_CODE = 0x36 NL80211_ATTR_RECEIVE_MULTICAST = 0x121 @@ -4412,6 +4494,7 @@ const ( NL80211_ATTR_RESP_IE = 0x4e NL80211_ATTR_ROAM_SUPPORT = 0x83 NL80211_ATTR_RX_FRAME_TYPES = 0x64 + NL80211_ATTR_RX_HW_TIMESTAMP = 0x140 NL80211_ATTR_RXMGMT_FLAGS = 0xbc NL80211_ATTR_RX_SIGNAL_DBM = 0x97 NL80211_ATTR_S1G_CAPABILITY = 0x128 @@ -4484,6 +4567,7 @@ const ( NL80211_ATTR_TSID = 0xd2 NL80211_ATTR_TWT_RESPONDER = 0x116 NL80211_ATTR_TX_FRAME_TYPES = 0x63 + NL80211_ATTR_TX_HW_TIMESTAMP = 0x13f NL80211_ATTR_TX_NO_CCK_RATE = 0x87 NL80211_ATTR_TXQ_LIMIT = 0x10a NL80211_ATTR_TXQ_MEMORY_LIMIT = 0x10b @@ -4557,6 +4641,10 @@ const ( NL80211_BAND_ATTR_RATES = 0x2 NL80211_BAND_ATTR_VHT_CAPA = 0x8 NL80211_BAND_ATTR_VHT_MCS_SET = 0x7 + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC = 0x8 + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET = 0xa + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY = 0x9 + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE = 0xb NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA = 0x6 NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC = 0x2 NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET = 0x4 @@ -4564,6 +4652,8 @@ const ( NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE = 0x5 NL80211_BAND_IFTYPE_ATTR_IFTYPES = 0x1 NL80211_BAND_IFTYPE_ATTR_MAX = 0xb + NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS = 0x7 + NL80211_BAND_LC = 0x5 NL80211_BAND_S1GHZ = 0x4 NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE = 0x2 NL80211_BITRATE_ATTR_MAX = 0x2 @@ -4584,7 +4674,9 @@ const ( NL80211_BSS_FREQUENCY_OFFSET = 0x14 NL80211_BSS_INFORMATION_ELEMENTS = 0x6 NL80211_BSS_LAST_SEEN_BOOTTIME = 0xf - NL80211_BSS_MAX = 0x14 + NL80211_BSS_MAX = 0x16 + NL80211_BSS_MLD_ADDR = 0x16 + NL80211_BSS_MLO_LINK_ID = 0x15 NL80211_BSS_PAD = 0x10 NL80211_BSS_PARENT_BSSID = 0x12 NL80211_BSS_PARENT_TSF = 0x11 @@ -4612,6 +4704,7 @@ const ( NL80211_CHAN_WIDTH_20 = 0x1 NL80211_CHAN_WIDTH_20_NOHT = 0x0 NL80211_CHAN_WIDTH_2 = 0x9 + NL80211_CHAN_WIDTH_320 = 0xd NL80211_CHAN_WIDTH_40 = 0x2 NL80211_CHAN_WIDTH_4 = 0xa NL80211_CHAN_WIDTH_5 = 0x6 @@ -4621,8 +4714,11 @@ const ( NL80211_CMD_ABORT_SCAN = 0x72 NL80211_CMD_ACTION = 0x3b NL80211_CMD_ACTION_TX_STATUS = 0x3c + NL80211_CMD_ADD_LINK = 0x94 + NL80211_CMD_ADD_LINK_STA = 0x96 NL80211_CMD_ADD_NAN_FUNCTION = 0x75 NL80211_CMD_ADD_TX_TS = 0x69 + NL80211_CMD_ASSOC_COMEBACK = 0x93 NL80211_CMD_ASSOCIATE = 0x26 NL80211_CMD_AUTHENTICATE = 0x25 NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL = 0x38 @@ -4630,6 +4726,10 @@ const ( NL80211_CMD_CHANNEL_SWITCH = 0x66 NL80211_CMD_CH_SWITCH_NOTIFY = 0x58 NL80211_CMD_CH_SWITCH_STARTED_NOTIFY = 0x6e + NL80211_CMD_COLOR_CHANGE_ABORTED = 0x90 + NL80211_CMD_COLOR_CHANGE_COMPLETED = 0x91 + NL80211_CMD_COLOR_CHANGE_REQUEST = 0x8e + NL80211_CMD_COLOR_CHANGE_STARTED = 0x8f NL80211_CMD_CONNECT = 0x2e NL80211_CMD_CONN_FAILED = 0x5b NL80211_CMD_CONTROL_PORT_FRAME = 0x81 @@ -4678,8 +4778,9 @@ const ( NL80211_CMD_LEAVE_IBSS = 0x2c NL80211_CMD_LEAVE_MESH = 0x45 NL80211_CMD_LEAVE_OCB = 0x6d - NL80211_CMD_MAX = 0x93 + NL80211_CMD_MAX = 0x98 NL80211_CMD_MICHAEL_MIC_FAILURE = 0x29 + NL80211_CMD_MODIFY_LINK_STA = 0x97 NL80211_CMD_NAN_MATCH = 0x78 NL80211_CMD_NEW_BEACON = 0xf NL80211_CMD_NEW_INTERFACE = 0x7 @@ -4692,6 +4793,7 @@ const ( NL80211_CMD_NEW_WIPHY = 0x3 NL80211_CMD_NOTIFY_CQM = 0x40 NL80211_CMD_NOTIFY_RADAR = 0x86 + NL80211_CMD_OBSS_COLOR_COLLISION = 0x8d NL80211_CMD_PEER_MEASUREMENT_COMPLETE = 0x85 NL80211_CMD_PEER_MEASUREMENT_RESULT = 0x84 NL80211_CMD_PEER_MEASUREMENT_START = 0x83 @@ -4707,6 +4809,8 @@ const ( NL80211_CMD_REGISTER_FRAME = 0x3a NL80211_CMD_RELOAD_REGDB = 0x7e NL80211_CMD_REMAIN_ON_CHANNEL = 0x37 + NL80211_CMD_REMOVE_LINK = 0x95 + NL80211_CMD_REMOVE_LINK_STA = 0x98 NL80211_CMD_REQ_SET_REG = 0x1b NL80211_CMD_ROAM = 0x2f NL80211_CMD_SCAN_ABORTED = 0x23 @@ -4717,6 +4821,7 @@ const ( NL80211_CMD_SET_CHANNEL = 0x41 NL80211_CMD_SET_COALESCE = 0x65 NL80211_CMD_SET_CQM = 0x3f + NL80211_CMD_SET_FILS_AAD = 0x92 NL80211_CMD_SET_INTERFACE = 0x6 NL80211_CMD_SET_KEY = 0xa NL80211_CMD_SET_MAC_ACL = 0x5d @@ -4791,6 +4896,8 @@ const ( NL80211_EDMG_BW_CONFIG_MIN = 0x4 NL80211_EDMG_CHANNELS_MAX = 0x3c NL80211_EDMG_CHANNELS_MIN = 0x1 + NL80211_EHT_MAX_CAPABILITY_LEN = 0x33 + NL80211_EHT_MIN_CAPABILITY_LEN = 0xd NL80211_EXTERNAL_AUTH_ABORT = 0x1 NL80211_EXTERNAL_AUTH_START = 0x0 NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK = 0x32 @@ -4807,6 +4914,7 @@ const ( NL80211_EXT_FEATURE_BEACON_RATE_HT = 0x7 NL80211_EXT_FEATURE_BEACON_RATE_LEGACY = 0x6 NL80211_EXT_FEATURE_BEACON_RATE_VHT = 0x8 + NL80211_EXT_FEATURE_BSS_COLOR = 0x3a NL80211_EXT_FEATURE_BSS_PARENT_TSF = 0x4 NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 = 0x1f NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH = 0x2a @@ -4818,6 +4926,7 @@ const ( NL80211_EXT_FEATURE_DFS_OFFLOAD = 0x19 NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER = 0x20 NL80211_EXT_FEATURE_EXT_KEY_ID = 0x24 + NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD = 0x3b NL80211_EXT_FEATURE_FILS_DISCOVERY = 0x34 NL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME = 0x11 NL80211_EXT_FEATURE_FILS_SK_OFFLOAD = 0xe @@ -4833,8 +4942,10 @@ const ( NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 0x14 NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE = 0x13 NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION = 0x31 + NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE = 0x3d NL80211_EXT_FEATURE_PROTECTED_TWT = 0x2b NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE = 0x39 + NL80211_EXT_FEATURE_RADAR_BACKGROUND = 0x3c NL80211_EXT_FEATURE_RRM = 0x1 NL80211_EXT_FEATURE_SAE_OFFLOAD_AP = 0x33 NL80211_EXT_FEATURE_SAE_OFFLOAD = 0x26 @@ -4906,7 +5017,9 @@ const ( NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11 NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc NL80211_FREQUENCY_ATTR_NO_20MHZ = 0x10 + NL80211_FREQUENCY_ATTR_NO_320MHZ = 0x1a NL80211_FREQUENCY_ATTR_NO_80MHZ = 0xb + NL80211_FREQUENCY_ATTR_NO_EHT = 0x1b NL80211_FREQUENCY_ATTR_NO_HE = 0x13 NL80211_FREQUENCY_ATTR_NO_HT40_MINUS = 0x9 NL80211_FREQUENCY_ATTR_NO_HT40_PLUS = 0xa @@ -5006,6 +5119,12 @@ const ( NL80211_MAX_SUPP_HT_RATES = 0x4d NL80211_MAX_SUPP_RATES = 0x20 NL80211_MAX_SUPP_REG_RULES = 0x80 + NL80211_MBSSID_CONFIG_ATTR_EMA = 0x5 + NL80211_MBSSID_CONFIG_ATTR_INDEX = 0x3 + NL80211_MBSSID_CONFIG_ATTR_MAX = 0x5 + NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY = 0x2 + NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES = 0x1 + NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX = 0x4 NL80211_MESHCONF_ATTR_MAX = 0x1f NL80211_MESHCONF_AUTO_OPEN_PLINKS = 0x7 NL80211_MESHCONF_AWAKE_WINDOW = 0x1b @@ -5168,6 +5287,7 @@ const ( NL80211_PMSR_FTM_FAILURE_UNSPECIFIED = 0x0 NL80211_PMSR_FTM_FAILURE_WRONG_CHANNEL = 0x3 NL80211_PMSR_FTM_REQ_ATTR_ASAP = 0x1 + NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR = 0xd NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION = 0x5 NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD = 0x4 NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST = 0x6 @@ -5244,12 +5364,36 @@ const ( NL80211_RADAR_PRE_CAC_EXPIRED = 0x4 NL80211_RATE_INFO_10_MHZ_WIDTH = 0xb NL80211_RATE_INFO_160_MHZ_WIDTH = 0xa + NL80211_RATE_INFO_320_MHZ_WIDTH = 0x12 NL80211_RATE_INFO_40_MHZ_WIDTH = 0x3 NL80211_RATE_INFO_5_MHZ_WIDTH = 0xc NL80211_RATE_INFO_80_MHZ_WIDTH = 0x8 NL80211_RATE_INFO_80P80_MHZ_WIDTH = 0x9 NL80211_RATE_INFO_BITRATE32 = 0x5 NL80211_RATE_INFO_BITRATE = 0x1 + NL80211_RATE_INFO_EHT_GI_0_8 = 0x0 + NL80211_RATE_INFO_EHT_GI_1_6 = 0x1 + NL80211_RATE_INFO_EHT_GI_3_2 = 0x2 + NL80211_RATE_INFO_EHT_GI = 0x15 + NL80211_RATE_INFO_EHT_MCS = 0x13 + NL80211_RATE_INFO_EHT_NSS = 0x14 + NL80211_RATE_INFO_EHT_RU_ALLOC_106 = 0x3 + NL80211_RATE_INFO_EHT_RU_ALLOC_106P26 = 0x4 + NL80211_RATE_INFO_EHT_RU_ALLOC_242 = 0x5 + NL80211_RATE_INFO_EHT_RU_ALLOC_26 = 0x0 + NL80211_RATE_INFO_EHT_RU_ALLOC_2x996 = 0xb + NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484 = 0xc + NL80211_RATE_INFO_EHT_RU_ALLOC_3x996 = 0xd + NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484 = 0xe + NL80211_RATE_INFO_EHT_RU_ALLOC_484 = 0x6 + NL80211_RATE_INFO_EHT_RU_ALLOC_484P242 = 0x7 + NL80211_RATE_INFO_EHT_RU_ALLOC_4x996 = 0xf + NL80211_RATE_INFO_EHT_RU_ALLOC_52 = 0x1 + NL80211_RATE_INFO_EHT_RU_ALLOC_52P26 = 0x2 + NL80211_RATE_INFO_EHT_RU_ALLOC_996 = 0x8 + NL80211_RATE_INFO_EHT_RU_ALLOC_996P484 = 0x9 + NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242 = 0xa + NL80211_RATE_INFO_EHT_RU_ALLOC = 0x16 NL80211_RATE_INFO_HE_1XLTF = 0x0 NL80211_RATE_INFO_HE_2XLTF = 0x1 NL80211_RATE_INFO_HE_4XLTF = 0x2 @@ -5292,6 +5436,7 @@ const ( NL80211_RRF_GO_CONCURRENT = 0x1000 NL80211_RRF_IR_CONCURRENT = 0x1000 NL80211_RRF_NO_160MHZ = 0x10000 + NL80211_RRF_NO_320MHZ = 0x40000 NL80211_RRF_NO_80MHZ = 0x8000 NL80211_RRF_NO_CCK = 0x2 NL80211_RRF_NO_HE = 0x20000 diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go index 2fd2060e6..9bc4c8f9d 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go @@ -491,6 +491,90 @@ type Utsname struct { Machine [256]byte } +const SizeofUvmexp = 0x278 + +type Uvmexp struct { + Pagesize int64 + Pagemask int64 + Pageshift int64 + Npages int64 + Free int64 + Active int64 + Inactive int64 + Paging int64 + Wired int64 + Zeropages int64 + Reserve_pagedaemon int64 + Reserve_kernel int64 + Freemin int64 + Freetarg int64 + Inactarg int64 + Wiredmax int64 + Nswapdev int64 + Swpages int64 + Swpginuse int64 + Swpgonly int64 + Nswget int64 + Unused1 int64 + Cpuhit int64 + Cpumiss int64 + Faults int64 + Traps int64 + Intrs int64 + Swtch int64 + Softs int64 + Syscalls int64 + Pageins int64 + Swapins int64 + Swapouts int64 + Pgswapin int64 + Pgswapout int64 + Forks int64 + Forks_ppwait int64 + Forks_sharevm int64 + Pga_zerohit int64 + Pga_zeromiss int64 + Zeroaborts int64 + Fltnoram int64 + Fltnoanon int64 + Fltpgwait int64 + Fltpgrele int64 + Fltrelck int64 + Fltrelckok int64 + Fltanget int64 + Fltanretry int64 + Fltamcopy int64 + Fltnamap int64 + Fltnomap int64 + Fltlget int64 + Fltget int64 + Flt_anon int64 + Flt_acow int64 + Flt_obj int64 + Flt_prcopy int64 + Flt_przero int64 + Pdwoke int64 + Pdrevs int64 + Unused4 int64 + Pdfreed int64 + Pdscans int64 + Pdanscan int64 + Pdobscan int64 + Pdreact int64 + Pdbusy int64 + Pdpageouts int64 + Pdpending int64 + Pddeact int64 + Anonpages int64 + Filepages int64 + Execpages int64 + Colorhit int64 + Colormiss int64 + Ncolors int64 + Bootpages int64 + Poolpages int64 +} + const SizeofClockinfo = 0x14 type Clockinfo struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go index 6a5a1a8ae..bb05f655d 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go @@ -499,6 +499,90 @@ type Utsname struct { Machine [256]byte } +const SizeofUvmexp = 0x278 + +type Uvmexp struct { + Pagesize int64 + Pagemask int64 + Pageshift int64 + Npages int64 + Free int64 + Active int64 + Inactive int64 + Paging int64 + Wired int64 + Zeropages int64 + Reserve_pagedaemon int64 + Reserve_kernel int64 + Freemin int64 + Freetarg int64 + Inactarg int64 + Wiredmax int64 + Nswapdev int64 + Swpages int64 + Swpginuse int64 + Swpgonly int64 + Nswget int64 + Unused1 int64 + Cpuhit int64 + Cpumiss int64 + Faults int64 + Traps int64 + Intrs int64 + Swtch int64 + Softs int64 + Syscalls int64 + Pageins int64 + Swapins int64 + Swapouts int64 + Pgswapin int64 + Pgswapout int64 + Forks int64 + Forks_ppwait int64 + Forks_sharevm int64 + Pga_zerohit int64 + Pga_zeromiss int64 + Zeroaborts int64 + Fltnoram int64 + Fltnoanon int64 + Fltpgwait int64 + Fltpgrele int64 + Fltrelck int64 + Fltrelckok int64 + Fltanget int64 + Fltanretry int64 + Fltamcopy int64 + Fltnamap int64 + Fltnomap int64 + Fltlget int64 + Fltget int64 + Flt_anon int64 + Flt_acow int64 + Flt_obj int64 + Flt_prcopy int64 + Flt_przero int64 + Pdwoke int64 + Pdrevs int64 + Unused4 int64 + Pdfreed int64 + Pdscans int64 + Pdanscan int64 + Pdobscan int64 + Pdreact int64 + Pdbusy int64 + Pdpageouts int64 + Pdpending int64 + Pddeact int64 + Anonpages int64 + Filepages int64 + Execpages int64 + Colorhit int64 + Colormiss int64 + Ncolors int64 + Bootpages int64 + Poolpages int64 +} + const SizeofClockinfo = 0x14 type Clockinfo struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go index 84cc8d01e..db40e3a19 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go @@ -496,6 +496,90 @@ type Utsname struct { Machine [256]byte } +const SizeofUvmexp = 0x278 + +type Uvmexp struct { + Pagesize int64 + Pagemask int64 + Pageshift int64 + Npages int64 + Free int64 + Active int64 + Inactive int64 + Paging int64 + Wired int64 + Zeropages int64 + Reserve_pagedaemon int64 + Reserve_kernel int64 + Freemin int64 + Freetarg int64 + Inactarg int64 + Wiredmax int64 + Nswapdev int64 + Swpages int64 + Swpginuse int64 + Swpgonly int64 + Nswget int64 + Unused1 int64 + Cpuhit int64 + Cpumiss int64 + Faults int64 + Traps int64 + Intrs int64 + Swtch int64 + Softs int64 + Syscalls int64 + Pageins int64 + Swapins int64 + Swapouts int64 + Pgswapin int64 + Pgswapout int64 + Forks int64 + Forks_ppwait int64 + Forks_sharevm int64 + Pga_zerohit int64 + Pga_zeromiss int64 + Zeroaborts int64 + Fltnoram int64 + Fltnoanon int64 + Fltpgwait int64 + Fltpgrele int64 + Fltrelck int64 + Fltrelckok int64 + Fltanget int64 + Fltanretry int64 + Fltamcopy int64 + Fltnamap int64 + Fltnomap int64 + Fltlget int64 + Fltget int64 + Flt_anon int64 + Flt_acow int64 + Flt_obj int64 + Flt_prcopy int64 + Flt_przero int64 + Pdwoke int64 + Pdrevs int64 + Unused4 int64 + Pdfreed int64 + Pdscans int64 + Pdanscan int64 + Pdobscan int64 + Pdreact int64 + Pdbusy int64 + Pdpageouts int64 + Pdpending int64 + Pddeact int64 + Anonpages int64 + Filepages int64 + Execpages int64 + Colorhit int64 + Colormiss int64 + Ncolors int64 + Bootpages int64 + Poolpages int64 +} + const SizeofClockinfo = 0x14 type Clockinfo struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go index c844e7096..11121151c 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go @@ -499,6 +499,90 @@ type Utsname struct { Machine [256]byte } +const SizeofUvmexp = 0x278 + +type Uvmexp struct { + Pagesize int64 + Pagemask int64 + Pageshift int64 + Npages int64 + Free int64 + Active int64 + Inactive int64 + Paging int64 + Wired int64 + Zeropages int64 + Reserve_pagedaemon int64 + Reserve_kernel int64 + Freemin int64 + Freetarg int64 + Inactarg int64 + Wiredmax int64 + Nswapdev int64 + Swpages int64 + Swpginuse int64 + Swpgonly int64 + Nswget int64 + Unused1 int64 + Cpuhit int64 + Cpumiss int64 + Faults int64 + Traps int64 + Intrs int64 + Swtch int64 + Softs int64 + Syscalls int64 + Pageins int64 + Swapins int64 + Swapouts int64 + Pgswapin int64 + Pgswapout int64 + Forks int64 + Forks_ppwait int64 + Forks_sharevm int64 + Pga_zerohit int64 + Pga_zeromiss int64 + Zeroaborts int64 + Fltnoram int64 + Fltnoanon int64 + Fltpgwait int64 + Fltpgrele int64 + Fltrelck int64 + Fltrelckok int64 + Fltanget int64 + Fltanretry int64 + Fltamcopy int64 + Fltnamap int64 + Fltnomap int64 + Fltlget int64 + Fltget int64 + Flt_anon int64 + Flt_acow int64 + Flt_obj int64 + Flt_prcopy int64 + Flt_przero int64 + Pdwoke int64 + Pdrevs int64 + Unused4 int64 + Pdfreed int64 + Pdscans int64 + Pdanscan int64 + Pdobscan int64 + Pdreact int64 + Pdbusy int64 + Pdpageouts int64 + Pdpending int64 + Pddeact int64 + Anonpages int64 + Filepages int64 + Execpages int64 + Colorhit int64 + Colormiss int64 + Ncolors int64 + Bootpages int64 + Poolpages int64 +} + const SizeofClockinfo = 0x14 type Clockinfo struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go index 2ed718ca0..26eba23b7 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go @@ -58,22 +58,22 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Mode uint32 - Dev int32 - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - X__st_birthtim Timespec + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + _ Timespec } type Statfs_t struct { @@ -98,7 +98,7 @@ type Statfs_t struct { F_mntonname [90]byte F_mntfromname [90]byte F_mntfromspec [90]byte - Pad_cgo_0 [2]byte + _ [2]byte Mount_info [160]byte } @@ -111,13 +111,13 @@ type Flock_t struct { } type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Namlen uint8 - X__d_padding [4]uint8 - Name [256]int8 + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + _ [4]uint8 + Name [256]int8 } type Fsid struct { @@ -262,8 +262,8 @@ type FdSet struct { } const ( - SizeofIfMsghdr = 0xec - SizeofIfData = 0xd4 + SizeofIfMsghdr = 0xa0 + SizeofIfData = 0x88 SizeofIfaMsghdr = 0x18 SizeofIfAnnounceMsghdr = 0x1a SizeofRtMsghdr = 0x60 @@ -292,7 +292,7 @@ type IfData struct { Link_state uint8 Mtu uint32 Metric uint32 - Pad uint32 + Rdomain uint32 Baudrate uint64 Ipackets uint64 Ierrors uint64 @@ -304,10 +304,10 @@ type IfData struct { Imcasts uint64 Omcasts uint64 Iqdrops uint64 + Oqdrops uint64 Noproto uint64 Capabilities uint32 Lastchange Timeval - Mclpool [7]Mclpool } type IfaMsghdr struct { @@ -368,20 +368,12 @@ type RtMetrics struct { Pad uint32 } -type Mclpool struct { - Grown int32 - Alive uint16 - Hwm uint16 - Cwm uint16 - Lwm uint16 -} - const ( SizeofBpfVersion = 0x4 SizeofBpfStat = 0x8 SizeofBpfProgram = 0x8 SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 + SizeofBpfHdr = 0x18 ) type BpfVersion struct { @@ -407,11 +399,14 @@ type BpfInsn struct { } type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [2]byte + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 } type BpfTimeval struct { @@ -488,7 +483,7 @@ type Uvmexp struct { Zeropages int32 Reserve_pagedaemon int32 Reserve_kernel int32 - Anonpages int32 + Unused01 int32 Vnodepages int32 Vtextpages int32 Freemin int32 @@ -507,8 +502,8 @@ type Uvmexp struct { Swpgonly int32 Nswget int32 Nanon int32 - Nanonneeded int32 - Nfreeanon int32 + Unused05 int32 + Unused06 int32 Faults int32 Traps int32 Intrs int32 @@ -516,8 +511,8 @@ type Uvmexp struct { Softs int32 Syscalls int32 Pageins int32 - Obsolete_swapins int32 - Obsolete_swapouts int32 + Unused07 int32 + Unused08 int32 Pgswapin int32 Pgswapout int32 Forks int32 @@ -525,7 +520,7 @@ type Uvmexp struct { Forks_sharevm int32 Pga_zerohit int32 Pga_zeromiss int32 - Zeroaborts int32 + Unused09 int32 Fltnoram int32 Fltnoanon int32 Fltnoamap int32 @@ -557,9 +552,9 @@ type Uvmexp struct { Pdpageouts int32 Pdpending int32 Pddeact int32 - Pdreanon int32 - Pdrevnode int32 - Pdrevtext int32 + Unused11 int32 + Unused12 int32 + Unused13 int32 Fpswtch int32 Kmapent int32 } diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go index b4fb97ebe..5a5479886 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go @@ -73,7 +73,6 @@ type Stat_t struct { Blksize int32 Flags uint32 Gen uint32 - _ [4]byte _ Timespec } @@ -81,7 +80,6 @@ type Statfs_t struct { F_flags uint32 F_bsize uint32 F_iosize uint32 - _ [4]byte F_blocks uint64 F_bfree uint64 F_bavail int64 @@ -200,10 +198,8 @@ type IPv6Mreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen uint32 - _ [4]byte Control *byte Controllen uint32 Flags int32 @@ -311,7 +307,6 @@ type IfData struct { Oqdrops uint64 Noproto uint64 Capabilities uint32 - _ [4]byte Lastchange Timeval } @@ -373,14 +368,12 @@ type RtMetrics struct { Pad uint32 } -type Mclpool struct{} - const ( SizeofBpfVersion = 0x4 SizeofBpfStat = 0x8 SizeofBpfProgram = 0x10 SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 + SizeofBpfHdr = 0x18 ) type BpfVersion struct { @@ -395,7 +388,6 @@ type BpfStat struct { type BpfProgram struct { Len uint32 - _ [4]byte Insns *BpfInsn } @@ -411,7 +403,10 @@ type BpfHdr struct { Caplen uint32 Datalen uint32 Hdrlen uint16 - _ [2]byte + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 } type BpfTimeval struct { @@ -488,7 +483,7 @@ type Uvmexp struct { Zeropages int32 Reserve_pagedaemon int32 Reserve_kernel int32 - Anonpages int32 + Unused01 int32 Vnodepages int32 Vtextpages int32 Freemin int32 @@ -507,8 +502,8 @@ type Uvmexp struct { Swpgonly int32 Nswget int32 Nanon int32 - Nanonneeded int32 - Nfreeanon int32 + Unused05 int32 + Unused06 int32 Faults int32 Traps int32 Intrs int32 @@ -516,8 +511,8 @@ type Uvmexp struct { Softs int32 Syscalls int32 Pageins int32 - Obsolete_swapins int32 - Obsolete_swapouts int32 + Unused07 int32 + Unused08 int32 Pgswapin int32 Pgswapout int32 Forks int32 @@ -525,7 +520,7 @@ type Uvmexp struct { Forks_sharevm int32 Pga_zerohit int32 Pga_zeromiss int32 - Zeroaborts int32 + Unused09 int32 Fltnoram int32 Fltnoanon int32 Fltnoamap int32 @@ -557,9 +552,9 @@ type Uvmexp struct { Pdpageouts int32 Pdpending int32 Pddeact int32 - Pdreanon int32 - Pdrevnode int32 - Pdrevtext int32 + Unused11 int32 + Unused12 int32 + Unused13 int32 Fpswtch int32 Kmapent int32 } diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go index 2c4675040..be58c4e1f 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go @@ -375,14 +375,12 @@ type RtMetrics struct { Pad uint32 } -type Mclpool struct{} - const ( SizeofBpfVersion = 0x4 SizeofBpfStat = 0x8 SizeofBpfProgram = 0x8 SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 + SizeofBpfHdr = 0x18 ) type BpfVersion struct { @@ -412,7 +410,10 @@ type BpfHdr struct { Caplen uint32 Datalen uint32 Hdrlen uint16 - _ [2]byte + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 } type BpfTimeval struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go index ddee04514..52338266c 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go @@ -368,14 +368,12 @@ type RtMetrics struct { Pad uint32 } -type Mclpool struct{} - const ( SizeofBpfVersion = 0x4 SizeofBpfStat = 0x8 SizeofBpfProgram = 0x10 SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 + SizeofBpfHdr = 0x18 ) type BpfVersion struct { @@ -405,7 +403,10 @@ type BpfHdr struct { Caplen uint32 Datalen uint32 Hdrlen uint16 - _ [2]byte + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 } type BpfTimeval struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go index eb13d4e8b..605cfdb12 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go @@ -368,14 +368,12 @@ type RtMetrics struct { Pad uint32 } -type Mclpool struct{} - const ( SizeofBpfVersion = 0x4 SizeofBpfStat = 0x8 SizeofBpfProgram = 0x10 SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 + SizeofBpfHdr = 0x18 ) type BpfVersion struct { @@ -405,7 +403,10 @@ type BpfHdr struct { Caplen uint32 Datalen uint32 Hdrlen uint16 - _ [2]byte + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 } type BpfTimeval struct { diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go index 7a6ba43a7..41cb3c01f 100644 --- a/vendor/golang.org/x/sys/windows/syscall_windows.go +++ b/vendor/golang.org/x/sys/windows/syscall_windows.go @@ -10,7 +10,6 @@ import ( errorspkg "errors" "fmt" "runtime" - "strings" "sync" "syscall" "time" @@ -87,22 +86,13 @@ func StringToUTF16(s string) []uint16 { // s, with a terminating NUL added. If s contains a NUL byte at any // location, it returns (nil, syscall.EINVAL). func UTF16FromString(s string) ([]uint16, error) { - if strings.IndexByte(s, 0) != -1 { - return nil, syscall.EINVAL - } - return utf16.Encode([]rune(s + "\x00")), nil + return syscall.UTF16FromString(s) } // UTF16ToString returns the UTF-8 encoding of the UTF-16 sequence s, // with a terminating NUL and any bytes after the NUL removed. func UTF16ToString(s []uint16) string { - for i, v := range s { - if v == 0 { - s = s[:i] - break - } - } - return string(utf16.Decode(s)) + return syscall.UTF16ToString(s) } // StringToUTF16Ptr is deprecated. Use UTF16PtrFromString instead. @@ -367,6 +357,7 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys IsWindowUnicode(hwnd HWND) (isUnicode bool) = user32.IsWindowUnicode //sys IsWindowVisible(hwnd HWND) (isVisible bool) = user32.IsWindowVisible //sys GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) = user32.GetGUIThreadInfo +//sys GetLargePageMinimum() (size uintptr) // Volume Management Functions //sys DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go index 96ba8559c..ac60052e4 100644 --- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -252,6 +252,7 @@ var ( procGetFileType = modkernel32.NewProc("GetFileType") procGetFinalPathNameByHandleW = modkernel32.NewProc("GetFinalPathNameByHandleW") procGetFullPathNameW = modkernel32.NewProc("GetFullPathNameW") + procGetLargePageMinimum = modkernel32.NewProc("GetLargePageMinimum") procGetLastError = modkernel32.NewProc("GetLastError") procGetLogicalDriveStringsW = modkernel32.NewProc("GetLogicalDriveStringsW") procGetLogicalDrives = modkernel32.NewProc("GetLogicalDrives") @@ -2180,6 +2181,12 @@ func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) ( return } +func GetLargePageMinimum() (size uintptr) { + r0, _, _ := syscall.Syscall(procGetLargePageMinimum.Addr(), 0, 0, 0, 0) + size = uintptr(r0) + return +} + func GetLastError() (lasterr error) { r0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0) if r0 != 0 { diff --git a/vendor/golang.org/x/term/AUTHORS b/vendor/golang.org/x/term/AUTHORS deleted file mode 100644 index 15167cd74..000000000 --- a/vendor/golang.org/x/term/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code refers to The Go Authors for copyright purposes. -# The master list of authors is in the main Go distribution, -# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/golang.org/x/term/CONTRIBUTORS b/vendor/golang.org/x/term/CONTRIBUTORS deleted file mode 100644 index 1c4577e96..000000000 --- a/vendor/golang.org/x/term/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code was written by the Go contributors. -# The master list of contributors is in the main Go distribution, -# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/golang.org/x/term/term.go b/vendor/golang.org/x/term/term.go index d59270880..1a40d1012 100644 --- a/vendor/golang.org/x/term/term.go +++ b/vendor/golang.org/x/term/term.go @@ -7,11 +7,11 @@ // // Putting a terminal into raw mode is the most common requirement: // -// oldState, err := term.MakeRaw(int(os.Stdin.Fd())) -// if err != nil { -// panic(err) -// } -// defer term.Restore(int(os.Stdin.Fd()), oldState) +// oldState, err := term.MakeRaw(int(os.Stdin.Fd())) +// if err != nil { +// panic(err) +// } +// defer term.Restore(int(os.Stdin.Fd()), oldState) // // Note that on non-Unix systems os.Stdin.Fd() may not be 0. package term diff --git a/vendor/golang.org/x/term/terminal.go b/vendor/golang.org/x/term/terminal.go index 535ab8257..f636667fb 100644 --- a/vendor/golang.org/x/term/terminal.go +++ b/vendor/golang.org/x/term/terminal.go @@ -233,7 +233,6 @@ func (t *Terminal) queue(data []rune) { t.outBuf = append(t.outBuf, []byte(string(data))...) } -var eraseUnderCursor = []rune{' ', keyEscape, '[', 'D'} var space = []rune{' '} func isPrintable(key rune) bool { @@ -935,7 +934,7 @@ func (s *stRingBuffer) Add(a string) { // next most recent, and so on. If such an element doesn't exist then ok is // false. func (s *stRingBuffer) NthPreviousEntry(n int) (value string, ok bool) { - if n >= s.size { + if n < 0 || n >= s.size { return "", false } index := s.head - n diff --git a/vendor/golang.org/x/text/AUTHORS b/vendor/golang.org/x/text/AUTHORS deleted file mode 100644 index 15167cd74..000000000 --- a/vendor/golang.org/x/text/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code refers to The Go Authors for copyright purposes. -# The master list of authors is in the main Go distribution, -# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/golang.org/x/text/CONTRIBUTORS b/vendor/golang.org/x/text/CONTRIBUTORS deleted file mode 100644 index 1c4577e96..000000000 --- a/vendor/golang.org/x/text/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code was written by the Go contributors. -# The master list of contributors is in the main Go distribution, -# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/golang.org/x/text/unicode/bidi/core.go b/vendor/golang.org/x/text/unicode/bidi/core.go index e4c081101..9d2ae547b 100644 --- a/vendor/golang.org/x/text/unicode/bidi/core.go +++ b/vendor/golang.org/x/text/unicode/bidi/core.go @@ -193,14 +193,14 @@ func (p *paragraph) run() { // // At the end of this function: // -// - The member variable matchingPDI is set to point to the index of the -// matching PDI character for each isolate initiator character. If there is -// no matching PDI, it is set to the length of the input text. For other -// characters, it is set to -1. -// - The member variable matchingIsolateInitiator is set to point to the -// index of the matching isolate initiator character for each PDI character. -// If there is no matching isolate initiator, or the character is not a PDI, -// it is set to -1. +// - The member variable matchingPDI is set to point to the index of the +// matching PDI character for each isolate initiator character. If there is +// no matching PDI, it is set to the length of the input text. For other +// characters, it is set to -1. +// - The member variable matchingIsolateInitiator is set to point to the +// index of the matching isolate initiator character for each PDI character. +// If there is no matching isolate initiator, or the character is not a PDI, +// it is set to -1. func (p *paragraph) determineMatchingIsolates() { p.matchingPDI = make([]int, p.Len()) p.matchingIsolateInitiator = make([]int, p.Len()) @@ -435,7 +435,7 @@ func maxLevel(a, b level) level { } // Rule X10, second bullet: Determine the start-of-sequence (sos) and end-of-sequence (eos) types, -// either L or R, for each isolating run sequence. +// either L or R, for each isolating run sequence. func (p *paragraph) isolatingRunSequence(indexes []int) *isolatingRunSequence { length := len(indexes) types := make([]Class, length) @@ -495,9 +495,9 @@ func (s *isolatingRunSequence) resolveWeakTypes() { if t == NSM { s.types[i] = precedingCharacterType } else { - if t.in(LRI, RLI, FSI, PDI) { - precedingCharacterType = ON - } + // if t.in(LRI, RLI, FSI, PDI) { + // precedingCharacterType = ON + // } precedingCharacterType = t } } @@ -905,7 +905,7 @@ func (p *paragraph) getLevels(linebreaks []int) []level { // Lines are concatenated from left to right. So for example, the fifth // character from the left on the third line is // -// getReordering(linebreaks)[linebreaks[1] + 4] +// getReordering(linebreaks)[linebreaks[1] + 4] // // (linebreaks[1] is the position after the last character of the second // line, which is also the index of the first character on the third line, diff --git a/vendor/golang.org/x/text/unicode/bidi/trieval.go b/vendor/golang.org/x/text/unicode/bidi/trieval.go index 4c459c4b7..6a796e221 100644 --- a/vendor/golang.org/x/text/unicode/bidi/trieval.go +++ b/vendor/golang.org/x/text/unicode/bidi/trieval.go @@ -37,18 +37,6 @@ const ( unknownClass = ^Class(0) ) -var controlToClass = map[rune]Class{ - 0x202D: LRO, // LeftToRightOverride, - 0x202E: RLO, // RightToLeftOverride, - 0x202A: LRE, // LeftToRightEmbedding, - 0x202B: RLE, // RightToLeftEmbedding, - 0x202C: PDF, // PopDirectionalFormat, - 0x2066: LRI, // LeftToRightIsolate, - 0x2067: RLI, // RightToLeftIsolate, - 0x2068: FSI, // FirstStrongIsolate, - 0x2069: PDI, // PopDirectionalIsolate, -} - // A trie entry has the following bits: // 7..5 XOR mask for brackets // 4 1: Bracket open, 0: Bracket close diff --git a/vendor/golang.org/x/text/unicode/norm/forminfo.go b/vendor/golang.org/x/text/unicode/norm/forminfo.go index 526c7033a..d69ccb4f9 100644 --- a/vendor/golang.org/x/text/unicode/norm/forminfo.go +++ b/vendor/golang.org/x/text/unicode/norm/forminfo.go @@ -110,10 +110,11 @@ func (p Properties) BoundaryAfter() bool { } // We pack quick check data in 4 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. +// +// 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 // influenced by normalization. diff --git a/vendor/golang.org/x/text/unicode/norm/normalize.go b/vendor/golang.org/x/text/unicode/norm/normalize.go index 95efcf26e..4747ad07a 100644 --- a/vendor/golang.org/x/text/unicode/norm/normalize.go +++ b/vendor/golang.org/x/text/unicode/norm/normalize.go @@ -18,16 +18,17 @@ import ( // A Form denotes a canonical representation of Unicode code points. // The Unicode-defined normalization and equivalence forms are: // -// NFC Unicode Normalization Form C -// NFD Unicode Normalization Form D -// NFKC Unicode Normalization Form KC -// NFKD Unicode Normalization Form KD +// NFC Unicode Normalization Form C +// NFD Unicode Normalization Form D +// NFKC Unicode Normalization Form KC +// NFKD Unicode Normalization Form KD // // For a Form f, this documentation uses the notation f(x) to mean // the bytes or string x converted to the given form. // A position n in x is called a boundary if conversion to the form can // proceed independently on both sides: -// f(x) == append(f(x[0:n]), f(x[n:])...) +// +// f(x) == append(f(x[0:n]), f(x[n:])...) // // References: https://unicode.org/reports/tr15/ and // https://unicode.org/notes/tn5/. diff --git a/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go index 96a130d30..9115ef257 100644 --- a/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go +++ b/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go @@ -7315,7 +7315,7 @@ const recompMapPacked = "" + "\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 + "\x00v\x03#\x00\x00\x1e\x7f" + // 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 @@ -7342,7 +7342,7 @@ const recompMapPacked = "" + "\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 + "\x01\x7f\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 diff --git a/vendor/golang.org/x/tools/AUTHORS b/vendor/golang.org/x/tools/AUTHORS deleted file mode 100644 index 15167cd74..000000000 --- a/vendor/golang.org/x/tools/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code refers to The Go Authors for copyright purposes. -# The master list of authors is in the main Go distribution, -# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/golang.org/x/tools/CONTRIBUTORS b/vendor/golang.org/x/tools/CONTRIBUTORS deleted file mode 100644 index 1c4577e96..000000000 --- a/vendor/golang.org/x/tools/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code was written by the Go contributors. -# The master list of contributors is in the main Go distribution, -# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go b/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go index 6b7052b89..9fa5aa192 100644 --- a/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go +++ b/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go @@ -11,6 +11,8 @@ import ( "go/ast" "go/token" "sort" + + "golang.org/x/tools/internal/typeparams" ) // PathEnclosingInterval returns the node that encloses the source @@ -20,9 +22,9 @@ import ( // additional whitespace abutting a node to be enclosed by it. // In this example: // -// z := x + y // add them -// <-A-> -// <----B-----> +// z := x + y // add them +// <-A-> +// <----B-----> // // the ast.BinaryExpr(+) node is considered to enclose interval B // even though its [Pos()..End()) is actually only interval A. @@ -41,10 +43,10 @@ import ( // interior whitespace of path[0]. // In this example: // -// z := x + y // add them -// <--C--> <---E--> -// ^ -// D +// z := x + y // add them +// <--C--> <---E--> +// ^ +// D // // intervals C, D and E are inexact. C is contained by the // z-assignment statement, because it spans three of its children (:=, @@ -52,12 +54,11 @@ import ( // interior whitespace of the assignment. E is considered interior // whitespace of the BlockStmt containing the assignment. // -// Precondition: [start, end) both lie within the same file as root. -// TODO(adonovan): return (nil, false) in this case and remove precond. -// Requires FileSet; see loader.tokenFileContainsPos. -// -// Postcondition: path is never nil; it always contains at least 'root'. -// +// The resulting path is never empty; it always contains at least the +// 'root' *ast.File. Ideally PathEnclosingInterval would reject +// intervals that lie wholly or partially outside the range of the +// file, but unfortunately ast.File records only the token.Pos of +// the 'package' keyword, but not of the start of the file itself. func PathEnclosingInterval(root *ast.File, start, end token.Pos) (path []ast.Node, exact bool) { // fmt.Printf("EnclosingInterval %d %d\n", start, end) // debugging @@ -133,6 +134,7 @@ func PathEnclosingInterval(root *ast.File, start, end token.Pos) (path []ast.Nod return false // inexact: overlaps multiple children } + // Ensure [start,end) is nondecreasing. if start > end { start, end = end, start } @@ -160,7 +162,6 @@ func PathEnclosingInterval(root *ast.File, start, end token.Pos) (path []ast.Nod // tokenNode is a dummy implementation of ast.Node for a single token. // They are used transiently by PathEnclosingInterval but never escape // this package. -// type tokenNode struct { pos token.Pos end token.Pos @@ -181,7 +182,6 @@ func tok(pos token.Pos, len int) ast.Node { // childrenOf returns the direct non-nil children of ast.Node n. // It may include fake ast.Node implementations for bare tokens. // it is not safe to call (e.g.) ast.Walk on such nodes. -// func childrenOf(n ast.Node) []ast.Node { var children []ast.Node @@ -294,8 +294,8 @@ func childrenOf(n ast.Node) []ast.Node { case *ast.FieldList: children = append(children, - tok(n.Opening, len("(")), - tok(n.Closing, len(")"))) + tok(n.Opening, len("(")), // or len("[") + tok(n.Closing, len(")"))) // or len("]") case *ast.File: // TODO test: Doc @@ -322,6 +322,9 @@ func childrenOf(n ast.Node) []ast.Node { children = append(children, n.Recv) } children = append(children, n.Name) + if tparams := typeparams.ForFuncType(n.Type); tparams != nil { + children = append(children, tparams) + } if n.Type.Params != nil { children = append(children, n.Type.Params) } @@ -371,8 +374,13 @@ func childrenOf(n ast.Node) []ast.Node { case *ast.IndexExpr: children = append(children, - tok(n.Lbrack, len("{")), - tok(n.Rbrack, len("}"))) + tok(n.Lbrack, len("[")), + tok(n.Rbrack, len("]"))) + + case *typeparams.IndexListExpr: + children = append(children, + tok(n.Lbrack, len("[")), + tok(n.Rbrack, len("]"))) case *ast.InterfaceType: children = append(children, @@ -478,7 +486,6 @@ func (sl byPos) Swap(i, j int) { // TODO(adonovan): in some cases (e.g. Field, FieldList, Ident, // StarExpr) we could be much more specific given the path to the AST // root. Perhaps we should do that. -// func NodeDescription(n ast.Node) string { switch n := n.(type) { case *ast.ArrayType: @@ -581,6 +588,8 @@ func NodeDescription(n ast.Node) string { return "decrement statement" case *ast.IndexExpr: return "index expression" + case *typeparams.IndexListExpr: + return "index list expression" case *ast.InterfaceType: return "interface type" case *ast.KeyValueExpr: diff --git a/vendor/golang.org/x/tools/go/ast/astutil/imports.go b/vendor/golang.org/x/tools/go/ast/astutil/imports.go index 2087ceec9..18d1adb05 100644 --- a/vendor/golang.org/x/tools/go/ast/astutil/imports.go +++ b/vendor/golang.org/x/tools/go/ast/astutil/imports.go @@ -22,8 +22,11 @@ func AddImport(fset *token.FileSet, f *ast.File, path string) (added bool) { // If name is not empty, it is used to rename the import. // // For example, calling +// // AddNamedImport(fset, f, "pathpkg", "path") +// // adds +// // import pathpkg "path" func AddNamedImport(fset *token.FileSet, f *ast.File, name, path string) (added bool) { if imports(f, name, path) { @@ -270,8 +273,8 @@ func DeleteNamedImport(fset *token.FileSet, f *ast.File, name, path string) (del } if j > 0 { lastImpspec := gen.Specs[j-1].(*ast.ImportSpec) - lastLine := fset.Position(lastImpspec.Path.ValuePos).Line - line := fset.Position(impspec.Path.ValuePos).Line + lastLine := fset.PositionFor(lastImpspec.Path.ValuePos, false).Line + line := fset.PositionFor(impspec.Path.ValuePos, false).Line // We deleted an entry but now there may be // a blank line-sized hole where the import was. diff --git a/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go b/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go index b949fc840..f430b21b9 100644 --- a/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go +++ b/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go @@ -41,7 +41,6 @@ type ApplyFunc func(*Cursor) bool // Children are traversed in the order in which they appear in the // respective node's struct definition. A package's files are // traversed in the filenames' alphabetical order. -// func Apply(root ast.Node, pre, post ApplyFunc) (result ast.Node) { parent := &struct{ ast.Node }{root} defer func() { @@ -65,8 +64,8 @@ var abort = new(int) // singleton, to signal termination of Apply // c.Parent(), and f is the field identifier with name c.Name(), // the following invariants hold: // -// p.f == c.Node() if c.Index() < 0 -// p.f[c.Index()] == c.Node() if c.Index() >= 0 +// p.f == c.Node() if c.Index() < 0 +// p.f[c.Index()] == c.Node() if c.Index() >= 0 // // The methods Replace, Delete, InsertBefore, and InsertAfter // can be used to change the AST without disrupting Apply. @@ -253,6 +252,10 @@ func (a *application) apply(parent ast.Node, name string, iter *iterator, n ast. a.apply(n, "X", nil, n.X) a.apply(n, "Index", nil, n.Index) + case *typeparams.IndexListExpr: + a.apply(n, "X", nil, n.X) + a.applyList(n, "Indices") + case *ast.SliceExpr: a.apply(n, "X", nil, n.X) a.apply(n, "Low", nil, n.Low) @@ -290,6 +293,9 @@ func (a *application) apply(parent ast.Node, name string, iter *iterator, n ast. a.apply(n, "Fields", nil, n.Fields) case *ast.FuncType: + if tparams := typeparams.ForFuncType(n); tparams != nil { + a.apply(n, "TypeParams", nil, tparams) + } a.apply(n, "Params", nil, n.Params) a.apply(n, "Results", nil, n.Results) @@ -402,6 +408,9 @@ func (a *application) apply(parent ast.Node, name string, iter *iterator, n ast. case *ast.TypeSpec: a.apply(n, "Doc", nil, n.Doc) a.apply(n, "Name", nil, n.Name) + if tparams := typeparams.ForTypeSpec(n); tparams != nil { + a.apply(n, "TypeParams", nil, tparams) + } a.apply(n, "Type", nil, n.Type) a.apply(n, "Comment", nil, n.Comment) @@ -439,11 +448,7 @@ func (a *application) apply(parent ast.Node, name string, iter *iterator, n ast. } default: - if typeparams.IsListExpr(n) { - a.applyList(n, "ElemList") - } else { - panic(fmt.Sprintf("Apply: unexpected node type %T", n)) - } + panic(fmt.Sprintf("Apply: unexpected node type %T", n)) } if a.post != nil && !a.post(&a.cursor) { diff --git a/vendor/golang.org/x/tools/imports/forward.go b/vendor/golang.org/x/tools/imports/forward.go index 8be18a66b..d2547c743 100644 --- a/vendor/golang.org/x/tools/imports/forward.go +++ b/vendor/golang.org/x/tools/imports/forward.go @@ -40,7 +40,7 @@ var LocalPrefix string // // Note that filename's directory influences which imports can be chosen, // so it is important that filename be accurate. -// To process data ``as if'' it were in filename, pass the data as a non-nil src. +// To process data “as if” it were in filename, pass the data as a non-nil src. func Process(filename string, src []byte, opt *Options) ([]byte, error) { var err error if src == nil { diff --git a/vendor/golang.org/x/tools/internal/fastwalk/fastwalk.go b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk.go index 9887f7e7a..798fe599b 100644 --- a/vendor/golang.org/x/tools/internal/fastwalk/fastwalk.go +++ b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk.go @@ -40,12 +40,12 @@ var ErrSkipFiles = errors.New("fastwalk: skip remaining files in directory") // If fastWalk returns filepath.SkipDir, the directory is skipped. // // Unlike filepath.Walk: -// * file stat calls must be done by the user. +// - file stat calls must be done by the user. // The only provided metadata is the file type, which does not include // any permission bits. -// * multiple goroutines stat the filesystem concurrently. The provided +// - multiple goroutines stat the filesystem concurrently. The provided // walkFn must be safe for concurrent use. -// * fastWalk can follow symlinks if walkFn returns the TraverseLink +// - fastWalk can follow symlinks if walkFn returns the TraverseLink // sentinel error. It is the walkFn's responsibility to prevent // fastWalk from going into symlink cycles. func Walk(root string, walkFn func(path string, typ os.FileMode) error) error { diff --git a/vendor/golang.org/x/tools/internal/gocommand/invoke.go b/vendor/golang.org/x/tools/internal/gocommand/invoke.go index 8659a0c5d..67256dc39 100644 --- a/vendor/golang.org/x/tools/internal/gocommand/invoke.go +++ b/vendor/golang.org/x/tools/internal/gocommand/invoke.go @@ -9,7 +9,6 @@ import ( "bytes" "context" "fmt" - exec "golang.org/x/sys/execabs" "io" "os" "regexp" @@ -18,6 +17,8 @@ import ( "sync" "time" + exec "golang.org/x/sys/execabs" + "golang.org/x/tools/internal/event" ) @@ -131,9 +132,16 @@ type Invocation struct { Verb string Args []string BuildFlags []string - ModFlag string - ModFile string - Overlay string + + // If ModFlag is set, the go command is invoked with -mod=ModFlag. + ModFlag string + + // If ModFile is set, the go command is invoked with -modfile=ModFile. + ModFile string + + // If Overlay is set, the go command is invoked with -overlay=Overlay. + Overlay string + // If CleanEnv is set, the invocation will run only with the environment // in Env, not starting with os.Environ. CleanEnv bool @@ -256,8 +264,10 @@ func cmdDebugStr(cmd *exec.Cmd) string { env := make(map[string]string) for _, kv := range cmd.Env { split := strings.SplitN(kv, "=", 2) - k, v := split[0], split[1] - env[k] = v + if len(split) == 2 { + k, v := split[0], split[1] + env[k] = v + } } var args []string diff --git a/vendor/golang.org/x/tools/internal/gocommand/vendor.go b/vendor/golang.org/x/tools/internal/gocommand/vendor.go index 5e75bd6d8..2d3d408c0 100644 --- a/vendor/golang.org/x/tools/internal/gocommand/vendor.go +++ b/vendor/golang.org/x/tools/internal/gocommand/vendor.go @@ -38,10 +38,10 @@ var modFlagRegexp = regexp.MustCompile(`-mod[ =](\w+)`) // with the supplied context.Context and Invocation. The Invocation can contain pre-defined fields, // of which only Verb and Args are modified to run the appropriate Go command. // Inspired by setDefaultBuildMod in modload/init.go -func VendorEnabled(ctx context.Context, inv Invocation, r *Runner) (*ModuleJSON, bool, error) { +func VendorEnabled(ctx context.Context, inv Invocation, r *Runner) (bool, *ModuleJSON, error) { mainMod, go114, err := getMainModuleAnd114(ctx, inv, r) if err != nil { - return nil, false, err + return false, nil, err } // We check the GOFLAGS to see if there is anything overridden or not. @@ -49,7 +49,7 @@ func VendorEnabled(ctx context.Context, inv Invocation, r *Runner) (*ModuleJSON, inv.Args = []string{"GOFLAGS"} stdout, err := r.Run(ctx, inv) if err != nil { - return nil, false, err + return false, nil, err } goflags := string(bytes.TrimSpace(stdout.Bytes())) matches := modFlagRegexp.FindStringSubmatch(goflags) @@ -57,25 +57,27 @@ func VendorEnabled(ctx context.Context, inv Invocation, r *Runner) (*ModuleJSON, if len(matches) != 0 { modFlag = matches[1] } - if modFlag != "" { - // Don't override an explicit '-mod=' argument. - return mainMod, modFlag == "vendor", nil + // Don't override an explicit '-mod=' argument. + if modFlag == "vendor" { + return true, mainMod, nil + } else if modFlag != "" { + return false, nil, nil } if mainMod == nil || !go114 { - return mainMod, false, nil + return false, nil, nil } // Check 1.14's automatic vendor mode. if fi, err := os.Stat(filepath.Join(mainMod.Dir, "vendor")); err == nil && fi.IsDir() { if mainMod.GoVersion != "" && semver.Compare("v"+mainMod.GoVersion, "v1.14") >= 0 { // The Go version is at least 1.14, and a vendor directory exists. // Set -mod=vendor by default. - return mainMod, true, nil + return true, mainMod, nil } } - return mainMod, false, nil + return false, nil, nil } -// getMainModuleAnd114 gets the main module's information and whether the +// getMainModuleAnd114 gets one of the main modules' information and whether the // go command in use is 1.14+. This is the information needed to figure out // if vendoring should be enabled. func getMainModuleAnd114(ctx context.Context, inv Invocation, r *Runner) (*ModuleJSON, bool, error) { diff --git a/vendor/golang.org/x/tools/internal/gopathwalk/walk.go b/vendor/golang.org/x/tools/internal/gopathwalk/walk.go index 925ff5356..168405322 100644 --- a/vendor/golang.org/x/tools/internal/gopathwalk/walk.go +++ b/vendor/golang.org/x/tools/internal/gopathwalk/walk.go @@ -175,8 +175,8 @@ func (w *walker) shouldSkipDir(fi os.FileInfo, dir string) bool { // walk walks through the given path. func (w *walker) walk(path string, typ os.FileMode) error { - dir := filepath.Dir(path) if typ.IsRegular() { + dir := filepath.Dir(path) if dir == w.root.Path && (w.root.Type == RootGOROOT || w.root.Type == RootGOPATH) { // Doesn't make sense to have regular files // directly in your $GOPATH/src or $GOROOT/src. @@ -209,12 +209,7 @@ func (w *walker) walk(path string, typ os.FileMode) error { // Emacs noise. return nil } - fi, err := os.Lstat(path) - if err != nil { - // Just ignore it. - return nil - } - if w.shouldTraverse(dir, fi) { + if w.shouldTraverse(path) { return fastwalk.ErrTraverseLink } } @@ -224,13 +219,8 @@ func (w *walker) walk(path string, typ os.FileMode) error { // shouldTraverse reports whether the symlink fi, found in dir, // should be followed. It makes sure symlinks were never visited // before to avoid symlink loops. -func (w *walker) shouldTraverse(dir string, fi os.FileInfo) bool { - path := filepath.Join(dir, fi.Name()) - target, err := filepath.EvalSymlinks(path) - if err != nil { - return false - } - ts, err := os.Stat(target) +func (w *walker) shouldTraverse(path string) bool { + ts, err := os.Stat(path) if err != nil { fmt.Fprintln(os.Stderr, err) return false @@ -238,7 +228,7 @@ func (w *walker) shouldTraverse(dir string, fi os.FileInfo) bool { if !ts.IsDir() { return false } - if w.shouldSkipDir(ts, dir) { + if w.shouldSkipDir(ts, filepath.Dir(path)) { return false } // Check for symlink loops by statting each directory component diff --git a/vendor/golang.org/x/tools/internal/imports/fix.go b/vendor/golang.org/x/tools/internal/imports/fix.go index d859617b7..9e373d64e 100644 --- a/vendor/golang.org/x/tools/internal/imports/fix.go +++ b/vendor/golang.org/x/tools/internal/imports/fix.go @@ -796,7 +796,7 @@ func GetPackageExports(ctx context.Context, wrapped func(PackageExport), searchP return getCandidatePkgs(ctx, callback, filename, filePkg, env) } -var RequiredGoEnvVars = []string{"GO111MODULE", "GOFLAGS", "GOINSECURE", "GOMOD", "GOMODCACHE", "GONOPROXY", "GONOSUMDB", "GOPATH", "GOPROXY", "GOROOT", "GOSUMDB"} +var RequiredGoEnvVars = []string{"GO111MODULE", "GOFLAGS", "GOINSECURE", "GOMOD", "GOMODCACHE", "GONOPROXY", "GONOSUMDB", "GOPATH", "GOPROXY", "GOROOT", "GOSUMDB", "GOWORK"} // ProcessEnv contains environment variables and settings that affect the use of // the go command, the go/build package, etc. @@ -906,7 +906,7 @@ func (e *ProcessEnv) GetResolver() (Resolver, error) { if err := e.init(); err != nil { return nil, err } - if len(e.Env["GOMOD"]) == 0 { + if len(e.Env["GOMOD"]) == 0 && len(e.Env["GOWORK"]) == 0 { e.resolver = newGopathResolver(e) return e.resolver, nil } diff --git a/vendor/golang.org/x/tools/internal/imports/imports.go b/vendor/golang.org/x/tools/internal/imports/imports.go index 2815edc33..95a88383a 100644 --- a/vendor/golang.org/x/tools/internal/imports/imports.go +++ b/vendor/golang.org/x/tools/internal/imports/imports.go @@ -103,12 +103,17 @@ func ApplyFixes(fixes []*ImportFix, filename string, src []byte, opt *Options, e return formatFile(fileSet, file, src, nil, opt) } -func formatFile(fileSet *token.FileSet, file *ast.File, src []byte, adjust func(orig []byte, src []byte) []byte, opt *Options) ([]byte, error) { - mergeImports(fileSet, file) - sortImports(opt.LocalPrefix, fileSet, file) - imps := astutil.Imports(fileSet, file) +// formatFile formats the file syntax tree. +// It may mutate the token.FileSet. +// +// If an adjust function is provided, it is called after formatting +// with the original source (formatFile's src parameter) and the +// formatted file, and returns the postpocessed result. +func formatFile(fset *token.FileSet, file *ast.File, src []byte, adjust func(orig []byte, src []byte) []byte, opt *Options) ([]byte, error) { + mergeImports(file) + sortImports(opt.LocalPrefix, fset.File(file.Pos()), file) var spacesBefore []string // import paths we need spaces before - for _, impSection := range imps { + for _, impSection := range astutil.Imports(fset, file) { // Within each block of contiguous imports, see if any // import lines are in different group numbers. If so, // we'll need to put a space between them so it's @@ -132,7 +137,7 @@ func formatFile(fileSet *token.FileSet, file *ast.File, src []byte, adjust func( printConfig := &printer.Config{Mode: printerMode, Tabwidth: opt.TabWidth} var buf bytes.Buffer - err := printConfig.Fprint(&buf, fileSet, file) + err := printConfig.Fprint(&buf, fset, file) if err != nil { return nil, err } @@ -276,11 +281,11 @@ func cutSpace(b []byte) (before, middle, after []byte) { } // matchSpace reformats src to use the same space context as orig. -// 1) If orig begins with blank lines, matchSpace inserts them at the beginning of src. -// 2) matchSpace copies the indentation of the first non-blank line in orig -// to every non-blank line in src. -// 3) matchSpace copies the trailing space from orig and uses it in place -// of src's trailing space. +// 1. If orig begins with blank lines, matchSpace inserts them at the beginning of src. +// 2. matchSpace copies the indentation of the first non-blank line in orig +// to every non-blank line in src. +// 3. matchSpace copies the trailing space from orig and uses it in place +// of src's trailing space. func matchSpace(orig []byte, src []byte) []byte { before, _, after := cutSpace(orig) i := bytes.LastIndex(before, []byte{'\n'}) @@ -306,7 +311,7 @@ func matchSpace(orig []byte, src []byte) []byte { return b.Bytes() } -var impLine = regexp.MustCompile(`^\s+(?:[\w\.]+\s+)?"(.+)"`) +var impLine = regexp.MustCompile(`^\s+(?:[\w\.]+\s+)?"(.+?)"`) func addImportSpaces(r io.Reader, breaks []string) ([]byte, error) { var out bytes.Buffer diff --git a/vendor/golang.org/x/tools/internal/imports/mod.go b/vendor/golang.org/x/tools/internal/imports/mod.go index dff6d5536..46693f243 100644 --- a/vendor/golang.org/x/tools/internal/imports/mod.go +++ b/vendor/golang.org/x/tools/internal/imports/mod.go @@ -34,7 +34,8 @@ type ModuleResolver struct { scannedRoots map[gopathwalk.Root]bool initialized bool - main *gocommand.ModuleJSON + mains []*gocommand.ModuleJSON + mainByDir map[string]*gocommand.ModuleJSON modsByModPath []*gocommand.ModuleJSON // All modules, ordered by # of path components in module Path... modsByDir []*gocommand.ModuleJSON // ...or Dir. @@ -69,21 +70,29 @@ func (r *ModuleResolver) init() error { Logf: r.env.Logf, WorkingDir: r.env.WorkingDir, } - mainMod, vendorEnabled, err := gocommand.VendorEnabled(context.TODO(), inv, r.env.GocmdRunner) - if err != nil { - return err + + vendorEnabled := false + var mainModVendor *gocommand.ModuleJSON + + // Module vendor directories are ignored in workspace mode: + // https://go.googlesource.com/proposal/+/master/design/45713-workspace.md + if len(r.env.Env["GOWORK"]) == 0 { + vendorEnabled, mainModVendor, err = gocommand.VendorEnabled(context.TODO(), inv, r.env.GocmdRunner) + if err != nil { + return err + } } - if mainMod != nil && vendorEnabled { + if mainModVendor != nil && vendorEnabled { // Vendor mode is on, so all the non-Main modules are irrelevant, // and we need to search /vendor for everything. - r.main = mainMod + r.mains = []*gocommand.ModuleJSON{mainModVendor} r.dummyVendorMod = &gocommand.ModuleJSON{ Path: "", - Dir: filepath.Join(mainMod.Dir, "vendor"), + Dir: filepath.Join(mainModVendor.Dir, "vendor"), } - r.modsByModPath = []*gocommand.ModuleJSON{mainMod, r.dummyVendorMod} - r.modsByDir = []*gocommand.ModuleJSON{mainMod, r.dummyVendorMod} + r.modsByModPath = []*gocommand.ModuleJSON{mainModVendor, r.dummyVendorMod} + r.modsByDir = []*gocommand.ModuleJSON{mainModVendor, r.dummyVendorMod} } else { // Vendor mode is off, so run go list -m ... to find everything. err := r.initAllMods() @@ -122,8 +131,10 @@ func (r *ModuleResolver) init() error { r.roots = []gopathwalk.Root{ {filepath.Join(goenv["GOROOT"], "/src"), gopathwalk.RootGOROOT}, } - if r.main != nil { - r.roots = append(r.roots, gopathwalk.Root{r.main.Dir, gopathwalk.RootCurrentModule}) + r.mainByDir = make(map[string]*gocommand.ModuleJSON) + for _, main := range r.mains { + r.roots = append(r.roots, gopathwalk.Root{main.Dir, gopathwalk.RootCurrentModule}) + r.mainByDir[main.Dir] = main } if vendorEnabled { r.roots = append(r.roots, gopathwalk.Root{r.dummyVendorMod.Dir, gopathwalk.RootOther}) @@ -189,7 +200,7 @@ func (r *ModuleResolver) initAllMods() error { r.modsByModPath = append(r.modsByModPath, mod) r.modsByDir = append(r.modsByDir, mod) if mod.Main { - r.main = mod + r.mains = append(r.mains, mod) } } return nil @@ -609,7 +620,7 @@ func (r *ModuleResolver) scanDirForPackage(root gopathwalk.Root, dir string) dir } switch root.Type { case gopathwalk.RootCurrentModule: - importPath = path.Join(r.main.Path, filepath.ToSlash(subdir)) + importPath = path.Join(r.mainByDir[root.Path].Path, filepath.ToSlash(subdir)) case gopathwalk.RootModuleCache: matches := modCacheRegexp.FindStringSubmatch(subdir) if len(matches) == 0 { diff --git a/vendor/golang.org/x/tools/internal/imports/sortimports.go b/vendor/golang.org/x/tools/internal/imports/sortimports.go index be8ffa25f..85144db1d 100644 --- a/vendor/golang.org/x/tools/internal/imports/sortimports.go +++ b/vendor/golang.org/x/tools/internal/imports/sortimports.go @@ -3,19 +3,23 @@ // license that can be found in the LICENSE file. // Hacked up copy of go/ast/import.go +// Modified to use a single token.File in preference to a FileSet. package imports import ( "go/ast" "go/token" + "log" "sort" "strconv" ) // sortImports sorts runs of consecutive import lines in import blocks in f. // It also removes duplicate imports when it is possible to do so without data loss. -func sortImports(localPrefix string, fset *token.FileSet, f *ast.File) { +// +// It may mutate the token.File. +func sortImports(localPrefix string, tokFile *token.File, f *ast.File) { for i, d := range f.Decls { d, ok := d.(*ast.GenDecl) if !ok || d.Tok != token.IMPORT { @@ -38,21 +42,21 @@ func sortImports(localPrefix string, fset *token.FileSet, f *ast.File) { i := 0 specs := d.Specs[:0] for j, s := range d.Specs { - if j > i && fset.Position(s.Pos()).Line > 1+fset.Position(d.Specs[j-1].End()).Line { + if j > i && tokFile.Line(s.Pos()) > 1+tokFile.Line(d.Specs[j-1].End()) { // j begins a new run. End this one. - specs = append(specs, sortSpecs(localPrefix, fset, f, d.Specs[i:j])...) + specs = append(specs, sortSpecs(localPrefix, tokFile, f, d.Specs[i:j])...) i = j } } - specs = append(specs, sortSpecs(localPrefix, fset, f, d.Specs[i:])...) + specs = append(specs, sortSpecs(localPrefix, tokFile, f, d.Specs[i:])...) d.Specs = specs // Deduping can leave a blank line before the rparen; clean that up. if len(d.Specs) > 0 { lastSpec := d.Specs[len(d.Specs)-1] - lastLine := fset.Position(lastSpec.Pos()).Line - if rParenLine := fset.Position(d.Rparen).Line; rParenLine > lastLine+1 { - fset.File(d.Rparen).MergeLine(rParenLine - 1) + lastLine := tokFile.PositionFor(lastSpec.Pos(), false).Line + if rParenLine := tokFile.PositionFor(d.Rparen, false).Line; rParenLine > lastLine+1 { + tokFile.MergeLine(rParenLine - 1) // has side effects! } } } @@ -60,7 +64,8 @@ func sortImports(localPrefix string, fset *token.FileSet, f *ast.File) { // mergeImports merges all the import declarations into the first one. // Taken from golang.org/x/tools/ast/astutil. -func mergeImports(fset *token.FileSet, f *ast.File) { +// This does not adjust line numbers properly +func mergeImports(f *ast.File) { if len(f.Decls) <= 1 { return } @@ -142,7 +147,9 @@ type posSpan struct { End token.Pos } -func sortSpecs(localPrefix string, fset *token.FileSet, f *ast.File, specs []ast.Spec) []ast.Spec { +// sortSpecs sorts the import specs within each import decl. +// It may mutate the token.File. +func sortSpecs(localPrefix string, tokFile *token.File, f *ast.File, specs []ast.Spec) []ast.Spec { // Can't short-circuit here even if specs are already sorted, // since they might yet need deduplication. // A lone import, however, may be safely ignored. @@ -158,7 +165,7 @@ func sortSpecs(localPrefix string, fset *token.FileSet, f *ast.File, specs []ast // Identify comments in this range. // Any comment from pos[0].Start to the final line counts. - lastLine := fset.Position(pos[len(pos)-1].End).Line + lastLine := tokFile.Line(pos[len(pos)-1].End) cstart := len(f.Comments) cend := len(f.Comments) for i, g := range f.Comments { @@ -168,7 +175,7 @@ func sortSpecs(localPrefix string, fset *token.FileSet, f *ast.File, specs []ast if i < cstart { cstart = i } - if fset.Position(g.End()).Line > lastLine { + if tokFile.Line(g.End()) > lastLine { cend = i break } @@ -201,7 +208,7 @@ func sortSpecs(localPrefix string, fset *token.FileSet, f *ast.File, specs []ast deduped = append(deduped, s) } else { p := s.Pos() - fset.File(p).MergeLine(fset.Position(p).Line) + tokFile.MergeLine(tokFile.Line(p)) // has side effects! } } specs = deduped @@ -232,13 +239,22 @@ func sortSpecs(localPrefix string, fset *token.FileSet, f *ast.File, specs []ast // Fixup comments can insert blank lines, because import specs are on different lines. // We remove those blank lines here by merging import spec to the first import spec line. - firstSpecLine := fset.Position(specs[0].Pos()).Line + firstSpecLine := tokFile.Line(specs[0].Pos()) for _, s := range specs[1:] { p := s.Pos() - line := fset.File(p).Line(p) + line := tokFile.Line(p) for previousLine := line - 1; previousLine >= firstSpecLine; { - fset.File(p).MergeLine(previousLine) - previousLine-- + // MergeLine can panic. Avoid the panic at the cost of not removing the blank line + // golang/go#50329 + if previousLine > 0 && previousLine < tokFile.LineCount() { + tokFile.MergeLine(previousLine) // has side effects! + previousLine-- + } else { + // try to gather some data to diagnose how this could happen + req := "Please report what the imports section of your go file looked like." + log.Printf("panic avoided: first:%d line:%d previous:%d max:%d. %s", + firstSpecLine, line, previousLine, tokFile.LineCount(), req) + } } } return specs diff --git a/vendor/golang.org/x/tools/internal/imports/zstdlib.go b/vendor/golang.org/x/tools/internal/imports/zstdlib.go index ccdd4e0ff..437fbb78d 100644 --- a/vendor/golang.org/x/tools/internal/imports/zstdlib.go +++ b/vendor/golang.org/x/tools/internal/imports/zstdlib.go @@ -88,6 +88,7 @@ var stdlib = map[string][]string{ "ContainsAny", "ContainsRune", "Count", + "Cut", "Equal", "EqualFold", "ErrTooLarge", @@ -180,6 +181,8 @@ var stdlib = map[string][]string{ "NewReader", "NewWriter", "Order", + "Reader", + "Writer", }, "compress/zlib": []string{ "BestCompression", @@ -641,7 +644,9 @@ var stdlib = map[string][]string{ "Named", "NamedArg", "NullBool", + "NullByte", "NullFloat64", + "NullInt16", "NullInt32", "NullInt64", "NullString", @@ -707,6 +712,11 @@ var stdlib = map[string][]string{ "ValueConverter", "Valuer", }, + "debug/buildinfo": []string{ + "BuildInfo", + "Read", + "ReadFile", + }, "debug/dwarf": []string{ "AddrType", "ArrayType", @@ -1940,6 +1950,7 @@ var stdlib = map[string][]string{ "R_PPC64_REL24_NOTOC", "R_PPC64_REL32", "R_PPC64_REL64", + "R_PPC64_RELATIVE", "R_PPC64_SECTOFF_DS", "R_PPC64_SECTOFF_LO_DS", "R_PPC64_TLS", @@ -2248,6 +2259,7 @@ var stdlib = map[string][]string{ "SHT_LOOS", "SHT_LOPROC", "SHT_LOUSER", + "SHT_MIPS_ABIFLAGS", "SHT_NOBITS", "SHT_NOTE", "SHT_NULL", @@ -2542,6 +2554,7 @@ var stdlib = map[string][]string{ "Symbol", }, "debug/plan9obj": []string{ + "ErrNoSymbols", "File", "FileHeader", "Magic386", @@ -2901,6 +2914,7 @@ var stdlib = map[string][]string{ "Importer", "IncDecStmt", "IndexExpr", + "IndexListExpr", "Inspect", "InterfaceType", "IsExported", @@ -3061,6 +3075,7 @@ var stdlib = map[string][]string{ "ParseExpr", "ParseExprFrom", "ParseFile", + "SkipObjectResolution", "SpuriousErrors", "Trace", }, @@ -3173,6 +3188,7 @@ var stdlib = map[string][]string{ "SUB", "SUB_ASSIGN", "SWITCH", + "TILDE", "TYPE", "Token", "UnaryPrec", @@ -3181,6 +3197,7 @@ var stdlib = map[string][]string{ "XOR_ASSIGN", }, "go/types": []string{ + "ArgumentError", "Array", "AssertableTo", "AssignableTo", @@ -3199,6 +3216,7 @@ var stdlib = map[string][]string{ "Complex64", "Config", "Const", + "Context", "ConvertibleTo", "DefPredeclaredTestFuncs", "Default", @@ -3218,6 +3236,8 @@ var stdlib = map[string][]string{ "ImporterFrom", "Info", "Initializer", + "Instance", + "Instantiate", "Int", "Int16", "Int32", @@ -3248,6 +3268,7 @@ var stdlib = map[string][]string{ "NewChan", "NewChecker", "NewConst", + "NewContext", "NewField", "NewFunc", "NewInterface", @@ -3262,10 +3283,14 @@ var stdlib = map[string][]string{ "NewPointer", "NewScope", "NewSignature", + "NewSignatureType", "NewSlice", "NewStruct", + "NewTerm", "NewTuple", "NewTypeName", + "NewTypeParam", + "NewUnion", "NewVar", "Nil", "Object", @@ -3290,11 +3315,15 @@ var stdlib = map[string][]string{ "StdSizes", "String", "Struct", + "Term", "Tuple", "Typ", "Type", "TypeAndValue", + "TypeList", "TypeName", + "TypeParam", + "TypeParamList", "TypeString", "Uint", "Uint16", @@ -3302,6 +3331,7 @@ var stdlib = map[string][]string{ "Uint64", "Uint8", "Uintptr", + "Union", "Universe", "Unsafe", "UnsafePointer", @@ -3441,6 +3471,7 @@ var stdlib = map[string][]string{ "Pt", "RGBA", "RGBA64", + "RGBA64Image", "Rect", "Rectangle", "RegisterFormat", @@ -3507,6 +3538,7 @@ var stdlib = map[string][]string{ "Op", "Over", "Quantizer", + "RGBA64Image", "Src", }, "image/gif": []string{ @@ -3612,6 +3644,7 @@ var stdlib = map[string][]string{ "FS", "File", "FileInfo", + "FileInfoToDirEntry", "FileMode", "Glob", "GlobFS", @@ -3772,15 +3805,18 @@ var stdlib = map[string][]string{ "Max", "MaxFloat32", "MaxFloat64", + "MaxInt", "MaxInt16", "MaxInt32", "MaxInt64", "MaxInt8", + "MaxUint", "MaxUint16", "MaxUint32", "MaxUint64", "MaxUint8", "Min", + "MinInt", "MinInt16", "MinInt32", "MinInt64", @@ -4068,9 +4104,11 @@ var stdlib = map[string][]string{ "SRV", "SplitHostPort", "TCPAddr", + "TCPAddrFromAddrPort", "TCPConn", "TCPListener", "UDPAddr", + "UDPAddrFromAddrPort", "UDPConn", "UnixAddr", "UnixConn", @@ -4078,6 +4116,7 @@ var stdlib = map[string][]string{ "UnknownNetworkError", }, "net/http": []string{ + "AllowQuerySemicolons", "CanonicalHeaderKey", "Client", "CloseNotifier", @@ -4129,6 +4168,7 @@ var stdlib = map[string][]string{ "ListenAndServe", "ListenAndServeTLS", "LocalAddrContextKey", + "MaxBytesHandler", "MaxBytesReader", "MethodConnect", "MethodDelete", @@ -4325,6 +4365,25 @@ var stdlib = map[string][]string{ "ParseDate", "ReadMessage", }, + "net/netip": []string{ + "Addr", + "AddrFrom16", + "AddrFrom4", + "AddrFromSlice", + "AddrPort", + "AddrPortFrom", + "IPv4Unspecified", + "IPv6LinkLocalAllNodes", + "IPv6Unspecified", + "MustParseAddr", + "MustParseAddrPort", + "MustParsePrefix", + "ParseAddr", + "ParseAddrPort", + "ParsePrefix", + "Prefix", + "PrefixFrom", + }, "net/rpc": []string{ "Accept", "Call", @@ -4628,6 +4687,8 @@ var stdlib = map[string][]string{ "Method", "New", "NewAt", + "Pointer", + "PointerTo", "Ptr", "PtrTo", "RecvDir", @@ -4660,6 +4721,7 @@ var stdlib = map[string][]string{ "Value", "ValueError", "ValueOf", + "VisibleFields", "Zero", }, "regexp": []string{ @@ -4799,11 +4861,17 @@ var stdlib = map[string][]string{ "UnlockOSThread", "Version", }, + "runtime/cgo": []string{ + "Handle", + "NewHandle", + }, "runtime/debug": []string{ "BuildInfo", + "BuildSetting", "FreeOSMemory", "GCStats", "Module", + "ParseBuildInfo", "PrintStack", "ReadBuildInfo", "ReadGCStats", @@ -4915,16 +4983,19 @@ var stdlib = map[string][]string{ "QuoteRuneToGraphic", "QuoteToASCII", "QuoteToGraphic", + "QuotedPrefix", "Unquote", "UnquoteChar", }, "strings": []string{ "Builder", + "Clone", "Compare", "Contains", "ContainsAny", "ContainsRune", "Count", + "Cut", "EqualFold", "Fields", "FieldsFunc", @@ -9774,6 +9845,7 @@ var stdlib = map[string][]string{ "Syscall18", "Syscall6", "Syscall9", + "SyscallN", "Sysctl", "SysctlUint32", "Sysctlnode", @@ -10183,7 +10255,6 @@ var stdlib = map[string][]string{ "Value", "ValueError", "ValueOf", - "Wrapper", }, "testing": []string{ "AllocsPerRun", @@ -10194,9 +10265,11 @@ var stdlib = map[string][]string{ "CoverBlock", "CoverMode", "Coverage", + "F", "Init", "InternalBenchmark", "InternalExample", + "InternalFuzzTarget", "InternalTest", "M", "Main", @@ -10294,9 +10367,11 @@ var stdlib = map[string][]string{ "ActionNode", "BoolNode", "BranchNode", + "BreakNode", "ChainNode", "CommandNode", "CommentNode", + "ContinueNode", "DotNode", "FieldNode", "IdentifierNode", @@ -10310,9 +10385,11 @@ var stdlib = map[string][]string{ "Node", "NodeAction", "NodeBool", + "NodeBreak", "NodeChain", "NodeCommand", "NodeComment", + "NodeContinue", "NodeDot", "NodeField", "NodeIdentifier", @@ -10334,6 +10411,7 @@ var stdlib = map[string][]string{ "PipeNode", "Pos", "RangeNode", + "SkipFuncCheck", "StringNode", "TemplateNode", "TextNode", @@ -10358,6 +10436,7 @@ var stdlib = map[string][]string{ "July", "June", "Kitchen", + "Layout", "LoadLocation", "LoadLocationFromTZData", "Local", @@ -10406,6 +10485,8 @@ var stdlib = map[string][]string{ "UTC", "Unix", "UnixDate", + "UnixMicro", + "UnixMilli", "Until", "Wednesday", "Weekday", @@ -10704,6 +10785,7 @@ var stdlib = map[string][]string{ "IsSurrogate", }, "unicode/utf8": []string{ + "AppendRune", "DecodeLastRune", "DecodeLastRuneInString", "DecodeRune", diff --git a/vendor/golang.org/x/tools/internal/typeparams/common.go b/vendor/golang.org/x/tools/internal/typeparams/common.go new file mode 100644 index 000000000..25a1426d3 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typeparams/common.go @@ -0,0 +1,179 @@ +// Copyright 2021 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 typeparams contains common utilities for writing tools that interact +// with generic Go code, as introduced with Go 1.18. +// +// Many of the types and functions in this package are proxies for the new APIs +// introduced in the standard library with Go 1.18. For example, the +// typeparams.Union type is an alias for go/types.Union, and the ForTypeSpec +// function returns the value of the go/ast.TypeSpec.TypeParams field. At Go +// versions older than 1.18 these helpers are implemented as stubs, allowing +// users of this package to write code that handles generic constructs inline, +// even if the Go version being used to compile does not support generics. +// +// Additionally, this package contains common utilities for working with the +// new generic constructs, to supplement the standard library APIs. Notably, +// the StructuralTerms API computes a minimal representation of the structural +// restrictions on a type parameter. +// +// An external version of these APIs is available in the +// golang.org/x/exp/typeparams module. +package typeparams + +import ( + "go/ast" + "go/token" + "go/types" +) + +// UnpackIndexExpr extracts data from AST nodes that represent index +// expressions. +// +// For an ast.IndexExpr, the resulting indices slice will contain exactly one +// index expression. For an ast.IndexListExpr (go1.18+), it may have a variable +// number of index expressions. +// +// For nodes that don't represent index expressions, the first return value of +// UnpackIndexExpr will be nil. +func UnpackIndexExpr(n ast.Node) (x ast.Expr, lbrack token.Pos, indices []ast.Expr, rbrack token.Pos) { + switch e := n.(type) { + case *ast.IndexExpr: + return e.X, e.Lbrack, []ast.Expr{e.Index}, e.Rbrack + case *IndexListExpr: + return e.X, e.Lbrack, e.Indices, e.Rbrack + } + return nil, token.NoPos, nil, token.NoPos +} + +// PackIndexExpr returns an *ast.IndexExpr or *ast.IndexListExpr, depending on +// the cardinality of indices. Calling PackIndexExpr with len(indices) == 0 +// will panic. +func PackIndexExpr(x ast.Expr, lbrack token.Pos, indices []ast.Expr, rbrack token.Pos) ast.Expr { + switch len(indices) { + case 0: + panic("empty indices") + case 1: + return &ast.IndexExpr{ + X: x, + Lbrack: lbrack, + Index: indices[0], + Rbrack: rbrack, + } + default: + return &IndexListExpr{ + X: x, + Lbrack: lbrack, + Indices: indices, + Rbrack: rbrack, + } + } +} + +// IsTypeParam reports whether t is a type parameter. +func IsTypeParam(t types.Type) bool { + _, ok := t.(*TypeParam) + return ok +} + +// OriginMethod returns the origin method associated with the method fn. +// For methods on a non-generic receiver base type, this is just +// fn. However, for methods with a generic receiver, OriginMethod returns the +// corresponding method in the method set of the origin type. +// +// As a special case, if fn is not a method (has no receiver), OriginMethod +// returns fn. +func OriginMethod(fn *types.Func) *types.Func { + recv := fn.Type().(*types.Signature).Recv() + if recv == nil { + + return fn + } + base := recv.Type() + p, isPtr := base.(*types.Pointer) + if isPtr { + base = p.Elem() + } + named, isNamed := base.(*types.Named) + if !isNamed { + // Receiver is a *types.Interface. + return fn + } + if ForNamed(named).Len() == 0 { + // Receiver base has no type parameters, so we can avoid the lookup below. + return fn + } + orig := NamedTypeOrigin(named) + gfn, _, _ := types.LookupFieldOrMethod(orig, true, fn.Pkg(), fn.Name()) + return gfn.(*types.Func) +} + +// GenericAssignableTo is a generalization of types.AssignableTo that +// implements the following rule for uninstantiated generic types: +// +// If V and T are generic named types, then V is considered assignable to T if, +// for every possible instantation of V[A_1, ..., A_N], the instantiation +// T[A_1, ..., A_N] is valid and V[A_1, ..., A_N] implements T[A_1, ..., A_N]. +// +// If T has structural constraints, they must be satisfied by V. +// +// For example, consider the following type declarations: +// +// type Interface[T any] interface { +// Accept(T) +// } +// +// type Container[T any] struct { +// Element T +// } +// +// func (c Container[T]) Accept(t T) { c.Element = t } +// +// In this case, GenericAssignableTo reports that instantiations of Container +// are assignable to the corresponding instantiation of Interface. +func GenericAssignableTo(ctxt *Context, V, T types.Type) bool { + // If V and T are not both named, or do not have matching non-empty type + // parameter lists, fall back on types.AssignableTo. + + VN, Vnamed := V.(*types.Named) + TN, Tnamed := T.(*types.Named) + if !Vnamed || !Tnamed { + return types.AssignableTo(V, T) + } + + vtparams := ForNamed(VN) + ttparams := ForNamed(TN) + if vtparams.Len() == 0 || vtparams.Len() != ttparams.Len() || NamedTypeArgs(VN).Len() != 0 || NamedTypeArgs(TN).Len() != 0 { + return types.AssignableTo(V, T) + } + + // V and T have the same (non-zero) number of type params. Instantiate both + // with the type parameters of V. This must always succeed for V, and will + // succeed for T if and only if the type set of each type parameter of V is a + // subset of the type set of the corresponding type parameter of T, meaning + // that every instantiation of V corresponds to a valid instantiation of T. + + // Minor optimization: ensure we share a context across the two + // instantiations below. + if ctxt == nil { + ctxt = NewContext() + } + + var targs []types.Type + for i := 0; i < vtparams.Len(); i++ { + targs = append(targs, vtparams.At(i)) + } + + vinst, err := Instantiate(ctxt, V, targs, true) + if err != nil { + panic("type parameters should satisfy their own constraints") + } + + tinst, err := Instantiate(ctxt, T, targs, true) + if err != nil { + return false + } + + return types.AssignableTo(vinst, tinst) +} diff --git a/vendor/golang.org/x/tools/internal/typeparams/coretype.go b/vendor/golang.org/x/tools/internal/typeparams/coretype.go new file mode 100644 index 000000000..993135ec9 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typeparams/coretype.go @@ -0,0 +1,122 @@ +// Copyright 2022 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 typeparams + +import ( + "go/types" +) + +// CoreType returns the core type of T or nil if T does not have a core type. +// +// See https://go.dev/ref/spec#Core_types for the definition of a core type. +func CoreType(T types.Type) types.Type { + U := T.Underlying() + if _, ok := U.(*types.Interface); !ok { + return U // for non-interface types, + } + + terms, err := _NormalTerms(U) + if len(terms) == 0 || err != nil { + // len(terms) -> empty type set of interface. + // err != nil => U is invalid, exceeds complexity bounds, or has an empty type set. + return nil // no core type. + } + + U = terms[0].Type().Underlying() + var identical int // i in [0,identical) => Identical(U, terms[i].Type().Underlying()) + for identical = 1; identical < len(terms); identical++ { + if !types.Identical(U, terms[identical].Type().Underlying()) { + break + } + } + + if identical == len(terms) { + // https://go.dev/ref/spec#Core_types + // "There is a single type U which is the underlying type of all types in the type set of T" + return U + } + ch, ok := U.(*types.Chan) + if !ok { + return nil // no core type as identical < len(terms) and U is not a channel. + } + // https://go.dev/ref/spec#Core_types + // "the type chan E if T contains only bidirectional channels, or the type chan<- E or + // <-chan E depending on the direction of the directional channels present." + for chans := identical; chans < len(terms); chans++ { + curr, ok := terms[chans].Type().Underlying().(*types.Chan) + if !ok { + return nil + } + if !types.Identical(ch.Elem(), curr.Elem()) { + return nil // channel elements are not identical. + } + if ch.Dir() == types.SendRecv { + // ch is bidirectional. We can safely always use curr's direction. + ch = curr + } else if curr.Dir() != types.SendRecv && ch.Dir() != curr.Dir() { + // ch and curr are not bidirectional and not the same direction. + return nil + } + } + return ch +} + +// _NormalTerms returns a slice of terms representing the normalized structural +// type restrictions of a type, if any. +// +// For all types other than *types.TypeParam, *types.Interface, and +// *types.Union, this is just a single term with Tilde() == false and +// Type() == typ. For *types.TypeParam, *types.Interface, and *types.Union, see +// below. +// +// Structural type restrictions of a type parameter are created via +// non-interface types embedded in its constraint interface (directly, or via a +// chain of interface embeddings). For example, in the declaration type +// T[P interface{~int; m()}] int the structural restriction of the type +// parameter P is ~int. +// +// With interface embedding and unions, the specification of structural type +// restrictions may be arbitrarily complex. For example, consider the +// following: +// +// type A interface{ ~string|~[]byte } +// +// type B interface{ int|string } +// +// type C interface { ~string|~int } +// +// type T[P interface{ A|B; C }] int +// +// In this example, the structural type restriction of P is ~string|int: A|B +// expands to ~string|~[]byte|int|string, which reduces to ~string|~[]byte|int, +// which when intersected with C (~string|~int) yields ~string|int. +// +// _NormalTerms computes these expansions and reductions, producing a +// "normalized" form of the embeddings. A structural restriction is normalized +// if it is a single union containing no interface terms, and is minimal in the +// sense that removing any term changes the set of types satisfying the +// constraint. It is left as a proof for the reader that, modulo sorting, there +// is exactly one such normalized form. +// +// Because the minimal representation always takes this form, _NormalTerms +// returns a slice of tilde terms corresponding to the terms of the union in +// the normalized structural restriction. An error is returned if the type is +// invalid, exceeds complexity bounds, or has an empty type set. In the latter +// case, _NormalTerms returns ErrEmptyTypeSet. +// +// _NormalTerms makes no guarantees about the order of terms, except that it +// is deterministic. +func _NormalTerms(typ types.Type) ([]*Term, error) { + switch typ := typ.(type) { + case *TypeParam: + return StructuralTerms(typ) + case *Union: + return UnionTermSet(typ) + case *types.Interface: + return InterfaceTermSet(typ) + default: + return []*Term{NewTerm(false, typ)}, nil + } +} diff --git a/vendor/golang.org/x/tools/internal/typeparams/doc.go b/vendor/golang.org/x/tools/internal/typeparams/doc.go deleted file mode 100644 index 5583947e2..000000000 --- a/vendor/golang.org/x/tools/internal/typeparams/doc.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2021 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 typeparams provides functions to work indirectly with type parameter -// data stored in go/ast and go/types objects, while these API are guarded by a -// build constraint. -// -// This package exists to make it easier for tools to work with generic code, -// while also compiling against older Go versions. -package typeparams diff --git a/vendor/golang.org/x/tools/internal/typeparams/enabled_go117.go b/vendor/golang.org/x/tools/internal/typeparams/enabled_go117.go new file mode 100644 index 000000000..18212390e --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typeparams/enabled_go117.go @@ -0,0 +1,12 @@ +// Copyright 2021 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.18 +// +build !go1.18 + +package typeparams + +// Enabled reports whether type parameters are enabled in the current build +// environment. +const Enabled = false diff --git a/vendor/golang.org/x/tools/internal/typeparams/enabled_go118.go b/vendor/golang.org/x/tools/internal/typeparams/enabled_go118.go new file mode 100644 index 000000000..d67148823 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typeparams/enabled_go118.go @@ -0,0 +1,15 @@ +// Copyright 2021 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.18 +// +build go1.18 + +package typeparams + +// Note: this constant is in a separate file as this is the only acceptable +// diff between the <1.18 API of this package and the 1.18 API. + +// Enabled reports whether type parameters are enabled in the current build +// environment. +const Enabled = true diff --git a/vendor/golang.org/x/tools/internal/typeparams/normalize.go b/vendor/golang.org/x/tools/internal/typeparams/normalize.go new file mode 100644 index 000000000..9c631b651 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typeparams/normalize.go @@ -0,0 +1,218 @@ +// Copyright 2021 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 typeparams + +import ( + "errors" + "fmt" + "go/types" + "os" + "strings" +) + +//go:generate go run copytermlist.go + +const debug = false + +var ErrEmptyTypeSet = errors.New("empty type set") + +// StructuralTerms returns a slice of terms representing the normalized +// structural type restrictions of a type parameter, if any. +// +// Structural type restrictions of a type parameter are created via +// non-interface types embedded in its constraint interface (directly, or via a +// chain of interface embeddings). For example, in the declaration +// +// type T[P interface{~int; m()}] int +// +// the structural restriction of the type parameter P is ~int. +// +// With interface embedding and unions, the specification of structural type +// restrictions may be arbitrarily complex. For example, consider the +// following: +// +// type A interface{ ~string|~[]byte } +// +// type B interface{ int|string } +// +// type C interface { ~string|~int } +// +// type T[P interface{ A|B; C }] int +// +// In this example, the structural type restriction of P is ~string|int: A|B +// expands to ~string|~[]byte|int|string, which reduces to ~string|~[]byte|int, +// which when intersected with C (~string|~int) yields ~string|int. +// +// StructuralTerms computes these expansions and reductions, producing a +// "normalized" form of the embeddings. A structural restriction is normalized +// if it is a single union containing no interface terms, and is minimal in the +// sense that removing any term changes the set of types satisfying the +// constraint. It is left as a proof for the reader that, modulo sorting, there +// is exactly one such normalized form. +// +// Because the minimal representation always takes this form, StructuralTerms +// returns a slice of tilde terms corresponding to the terms of the union in +// the normalized structural restriction. An error is returned if the +// constraint interface is invalid, exceeds complexity bounds, or has an empty +// type set. In the latter case, StructuralTerms returns ErrEmptyTypeSet. +// +// StructuralTerms makes no guarantees about the order of terms, except that it +// is deterministic. +func StructuralTerms(tparam *TypeParam) ([]*Term, error) { + constraint := tparam.Constraint() + if constraint == nil { + return nil, fmt.Errorf("%s has nil constraint", tparam) + } + iface, _ := constraint.Underlying().(*types.Interface) + if iface == nil { + return nil, fmt.Errorf("constraint is %T, not *types.Interface", constraint.Underlying()) + } + return InterfaceTermSet(iface) +} + +// InterfaceTermSet computes the normalized terms for a constraint interface, +// returning an error if the term set cannot be computed or is empty. In the +// latter case, the error will be ErrEmptyTypeSet. +// +// See the documentation of StructuralTerms for more information on +// normalization. +func InterfaceTermSet(iface *types.Interface) ([]*Term, error) { + return computeTermSet(iface) +} + +// UnionTermSet computes the normalized terms for a union, returning an error +// if the term set cannot be computed or is empty. In the latter case, the +// error will be ErrEmptyTypeSet. +// +// See the documentation of StructuralTerms for more information on +// normalization. +func UnionTermSet(union *Union) ([]*Term, error) { + return computeTermSet(union) +} + +func computeTermSet(typ types.Type) ([]*Term, error) { + tset, err := computeTermSetInternal(typ, make(map[types.Type]*termSet), 0) + if err != nil { + return nil, err + } + if tset.terms.isEmpty() { + return nil, ErrEmptyTypeSet + } + if tset.terms.isAll() { + return nil, nil + } + var terms []*Term + for _, term := range tset.terms { + terms = append(terms, NewTerm(term.tilde, term.typ)) + } + return terms, nil +} + +// A termSet holds the normalized set of terms for a given type. +// +// The name termSet is intentionally distinct from 'type set': a type set is +// all types that implement a type (and includes method restrictions), whereas +// a term set just represents the structural restrictions on a type. +type termSet struct { + complete bool + terms termlist +} + +func indentf(depth int, format string, args ...interface{}) { + fmt.Fprintf(os.Stderr, strings.Repeat(".", depth)+format+"\n", args...) +} + +func computeTermSetInternal(t types.Type, seen map[types.Type]*termSet, depth int) (res *termSet, err error) { + if t == nil { + panic("nil type") + } + + if debug { + indentf(depth, "%s", t.String()) + defer func() { + if err != nil { + indentf(depth, "=> %s", err) + } else { + indentf(depth, "=> %s", res.terms.String()) + } + }() + } + + const maxTermCount = 100 + if tset, ok := seen[t]; ok { + if !tset.complete { + return nil, fmt.Errorf("cycle detected in the declaration of %s", t) + } + return tset, nil + } + + // Mark the current type as seen to avoid infinite recursion. + tset := new(termSet) + defer func() { + tset.complete = true + }() + seen[t] = tset + + switch u := t.Underlying().(type) { + case *types.Interface: + // The term set of an interface is the intersection of the term sets of its + // embedded types. + tset.terms = allTermlist + for i := 0; i < u.NumEmbeddeds(); i++ { + embedded := u.EmbeddedType(i) + if _, ok := embedded.Underlying().(*TypeParam); ok { + return nil, fmt.Errorf("invalid embedded type %T", embedded) + } + tset2, err := computeTermSetInternal(embedded, seen, depth+1) + if err != nil { + return nil, err + } + tset.terms = tset.terms.intersect(tset2.terms) + } + case *Union: + // The term set of a union is the union of term sets of its terms. + tset.terms = nil + for i := 0; i < u.Len(); i++ { + t := u.Term(i) + var terms termlist + switch t.Type().Underlying().(type) { + case *types.Interface: + tset2, err := computeTermSetInternal(t.Type(), seen, depth+1) + if err != nil { + return nil, err + } + terms = tset2.terms + case *TypeParam, *Union: + // A stand-alone type parameter or union is not permitted as union + // term. + return nil, fmt.Errorf("invalid union term %T", t) + default: + if t.Type() == types.Typ[types.Invalid] { + continue + } + terms = termlist{{t.Tilde(), t.Type()}} + } + tset.terms = tset.terms.union(terms) + if len(tset.terms) > maxTermCount { + return nil, fmt.Errorf("exceeded max term count %d", maxTermCount) + } + } + case *TypeParam: + panic("unreachable") + default: + // For all other types, the term set is just a single non-tilde term + // holding the type itself. + if u != types.Typ[types.Invalid] { + tset.terms = termlist{{false, t}} + } + } + return tset, nil +} + +// under is a facade for the go/types internal function of the same name. It is +// used by typeterm.go. +func under(t types.Type) types.Type { + return t.Underlying() +} diff --git a/vendor/golang.org/x/tools/internal/typeparams/notypeparams.go b/vendor/golang.org/x/tools/internal/typeparams/notypeparams.go deleted file mode 100644 index 3a0abc7c1..000000000 --- a/vendor/golang.org/x/tools/internal/typeparams/notypeparams.go +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright 2021 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 !typeparams || !go1.17 -// +build !typeparams !go1.17 - -package typeparams - -import ( - "go/ast" - "go/types" -) - -// NOTE: doc comments must be kept in sync with typeparams.go. - -// Enabled reports whether type parameters are enabled in the current build -// environment. -const Enabled = false - -// UnpackIndex extracts all index expressions from e. For non-generic code this -// is always one expression: e.Index, but may be more than one expression for -// generic type instantiation. -func UnpackIndex(e *ast.IndexExpr) []ast.Expr { - return []ast.Expr{e.Index} -} - -// IsListExpr reports whether n is an *ast.ListExpr, which is a new node type -// introduced to hold type arguments for generic type instantiation. -func IsListExpr(n ast.Node) bool { - return false -} - -// ForTypeDecl extracts the (possibly nil) type parameter node list from n. -func ForTypeDecl(*ast.TypeSpec) *ast.FieldList { - return nil -} - -// ForFuncDecl extracts the (possibly nil) type parameter node list from n. -func ForFuncDecl(*ast.FuncDecl) *ast.FieldList { - return nil -} - -// ForSignature extracts the (possibly empty) type parameter object list from -// sig. -func ForSignature(*types.Signature) []*types.TypeName { - return nil -} - -// HasTypeSet reports if iface has a type set. -func HasTypeSet(*types.Interface) bool { - return false -} - -// IsComparable reports if iface is the comparable interface. -func IsComparable(*types.Interface) bool { - return false -} - -// IsConstraint reports whether iface may only be used as a type parameter -// constraint (i.e. has a type set or is the comparable interface). -func IsConstraint(*types.Interface) bool { - return false -} - -// ForNamed extracts the (possibly empty) type parameter object list from -// named. -func ForNamed(*types.Named) []*types.TypeName { - return nil -} - -// NamedTArgs extracts the (possibly empty) type argument list from named. -func NamedTArgs(*types.Named) []types.Type { - return nil -} - -// InitInferred initializes info to record inferred type information. -func InitInferred(*types.Info) { -} - -// GetInferred extracts inferred type information from info for e. -// -// The expression e may have an inferred type if it is an *ast.IndexExpr -// representing partial instantiation of a generic function type for which type -// arguments have been inferred using constraint type inference, or if it is an -// *ast.CallExpr for which type type arguments have be inferred using both -// constraint type inference and function argument inference. -func GetInferred(*types.Info, ast.Expr) ([]types.Type, *types.Signature) { - return nil, nil -} diff --git a/vendor/golang.org/x/tools/internal/typeparams/termlist.go b/vendor/golang.org/x/tools/internal/typeparams/termlist.go new file mode 100644 index 000000000..933106a23 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typeparams/termlist.go @@ -0,0 +1,163 @@ +// Copyright 2021 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. + +// Code generated by copytermlist.go DO NOT EDIT. + +package typeparams + +import ( + "bytes" + "go/types" +) + +// A termlist represents the type set represented by the union +// t1 ∪ y2 ∪ ... tn of the type sets of the terms t1 to tn. +// A termlist is in normal form if all terms are disjoint. +// termlist operations don't require the operands to be in +// normal form. +type termlist []*term + +// allTermlist represents the set of all types. +// It is in normal form. +var allTermlist = termlist{new(term)} + +// String prints the termlist exactly (without normalization). +func (xl termlist) String() string { + if len(xl) == 0 { + return "∅" + } + var buf bytes.Buffer + for i, x := range xl { + if i > 0 { + buf.WriteString(" ∪ ") + } + buf.WriteString(x.String()) + } + return buf.String() +} + +// isEmpty reports whether the termlist xl represents the empty set of types. +func (xl termlist) isEmpty() bool { + // If there's a non-nil term, the entire list is not empty. + // If the termlist is in normal form, this requires at most + // one iteration. + for _, x := range xl { + if x != nil { + return false + } + } + return true +} + +// isAll reports whether the termlist xl represents the set of all types. +func (xl termlist) isAll() bool { + // If there's a 𝓤 term, the entire list is 𝓤. + // If the termlist is in normal form, this requires at most + // one iteration. + for _, x := range xl { + if x != nil && x.typ == nil { + return true + } + } + return false +} + +// norm returns the normal form of xl. +func (xl termlist) norm() termlist { + // Quadratic algorithm, but good enough for now. + // TODO(gri) fix asymptotic performance + used := make([]bool, len(xl)) + var rl termlist + for i, xi := range xl { + if xi == nil || used[i] { + continue + } + for j := i + 1; j < len(xl); j++ { + xj := xl[j] + if xj == nil || used[j] { + continue + } + if u1, u2 := xi.union(xj); u2 == nil { + // If we encounter a 𝓤 term, the entire list is 𝓤. + // Exit early. + // (Note that this is not just an optimization; + // if we continue, we may end up with a 𝓤 term + // and other terms and the result would not be + // in normal form.) + if u1.typ == nil { + return allTermlist + } + xi = u1 + used[j] = true // xj is now unioned into xi - ignore it in future iterations + } + } + rl = append(rl, xi) + } + return rl +} + +// union returns the union xl ∪ yl. +func (xl termlist) union(yl termlist) termlist { + return append(xl, yl...).norm() +} + +// intersect returns the intersection xl ∩ yl. +func (xl termlist) intersect(yl termlist) termlist { + if xl.isEmpty() || yl.isEmpty() { + return nil + } + + // Quadratic algorithm, but good enough for now. + // TODO(gri) fix asymptotic performance + var rl termlist + for _, x := range xl { + for _, y := range yl { + if r := x.intersect(y); r != nil { + rl = append(rl, r) + } + } + } + return rl.norm() +} + +// equal reports whether xl and yl represent the same type set. +func (xl termlist) equal(yl termlist) bool { + // TODO(gri) this should be more efficient + return xl.subsetOf(yl) && yl.subsetOf(xl) +} + +// includes reports whether t ∈ xl. +func (xl termlist) includes(t types.Type) bool { + for _, x := range xl { + if x.includes(t) { + return true + } + } + return false +} + +// supersetOf reports whether y ⊆ xl. +func (xl termlist) supersetOf(y *term) bool { + for _, x := range xl { + if y.subsetOf(x) { + return true + } + } + return false +} + +// subsetOf reports whether xl ⊆ yl. +func (xl termlist) subsetOf(yl termlist) bool { + if yl.isEmpty() { + return xl.isEmpty() + } + + // each term x of xl must be a subset of yl + for _, x := range xl { + if !yl.supersetOf(x) { + return false // x is not a subset yl + } + } + return true +} diff --git a/vendor/golang.org/x/tools/internal/typeparams/typeparams.go b/vendor/golang.org/x/tools/internal/typeparams/typeparams.go deleted file mode 100644 index 6b7958af0..000000000 --- a/vendor/golang.org/x/tools/internal/typeparams/typeparams.go +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright 2021 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 typeparams && go1.17 -// +build typeparams,go1.17 - -package typeparams - -import ( - "go/ast" - "go/types" -) - -// NOTE: doc comments must be kept in sync with notypeparams.go. - -// Enabled reports whether type parameters are enabled in the current build -// environment. -const Enabled = true - -// UnpackIndex extracts all index expressions from e. For non-generic code this -// is always one expression: e.Index, but may be more than one expression for -// generic type instantiation. -func UnpackIndex(e *ast.IndexExpr) []ast.Expr { - if x, _ := e.Index.(*ast.ListExpr); x != nil { - return x.ElemList - } - if e.Index != nil { - return []ast.Expr{e.Index} - } - return nil -} - -// IsListExpr reports whether n is an *ast.ListExpr, which is a new node type -// introduced to hold type arguments for generic type instantiation. -func IsListExpr(n ast.Node) bool { - _, ok := n.(*ast.ListExpr) - return ok -} - -// ForTypeDecl extracts the (possibly nil) type parameter node list from n. -func ForTypeDecl(n *ast.TypeSpec) *ast.FieldList { - return n.TParams -} - -// ForFuncDecl extracts the (possibly nil) type parameter node list from n. -func ForFuncDecl(n *ast.FuncDecl) *ast.FieldList { - if n.Type != nil { - return n.Type.TParams - } - return nil -} - -// ForSignature extracts the (possibly empty) type parameter object list from -// sig. -func ForSignature(sig *types.Signature) []*types.TypeName { - return sig.TParams() -} - -// HasTypeSet reports if iface has a type set. -func HasTypeSet(iface *types.Interface) bool { - return iface.HasTypeList() -} - -// IsComparable reports if iface is the comparable interface. -func IsComparable(iface *types.Interface) bool { - return iface.IsComparable() -} - -// IsConstraint reports whether iface may only be used as a type parameter -// constraint (i.e. has a type set or is the comparable interface). -func IsConstraint(iface *types.Interface) bool { - return iface.IsConstraint() -} - -// ForNamed extracts the (possibly empty) type parameter object list from -// named. -func ForNamed(named *types.Named) []*types.TypeName { - return named.TParams() -} - -// NamedTArgs extracts the (possibly empty) type argument list from named. -func NamedTArgs(named *types.Named) []types.Type { - return named.TArgs() -} - -// InitInferred initializes info to record inferred type information. -func InitInferred(info *types.Info) { - info.Inferred = make(map[ast.Expr]types.Inferred) -} - -// GetInferred extracts inferred type information from info for e. -// -// The expression e may have an inferred type if it is an *ast.IndexExpr -// representing partial instantiation of a generic function type for which type -// arguments have been inferred using constraint type inference, or if it is an -// *ast.CallExpr for which type type arguments have be inferred using both -// constraint type inference and function argument inference. -func GetInferred(info *types.Info, e ast.Expr) ([]types.Type, *types.Signature) { - if info.Inferred == nil { - return nil, nil - } - inf := info.Inferred[e] - return inf.TArgs, inf.Sig -} diff --git a/vendor/golang.org/x/tools/internal/typeparams/typeparams_go117.go b/vendor/golang.org/x/tools/internal/typeparams/typeparams_go117.go new file mode 100644 index 000000000..b4788978f --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typeparams/typeparams_go117.go @@ -0,0 +1,197 @@ +// Copyright 2021 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.18 +// +build !go1.18 + +package typeparams + +import ( + "go/ast" + "go/token" + "go/types" +) + +func unsupported() { + panic("type parameters are unsupported at this go version") +} + +// IndexListExpr is a placeholder type, as type parameters are not supported at +// this Go version. Its methods panic on use. +type IndexListExpr struct { + ast.Expr + X ast.Expr // expression + Lbrack token.Pos // position of "[" + Indices []ast.Expr // index expressions + Rbrack token.Pos // position of "]" +} + +// ForTypeSpec returns an empty field list, as type parameters on not supported +// at this Go version. +func ForTypeSpec(*ast.TypeSpec) *ast.FieldList { + return nil +} + +// ForFuncType returns an empty field list, as type parameters are not +// supported at this Go version. +func ForFuncType(*ast.FuncType) *ast.FieldList { + return nil +} + +// TypeParam is a placeholder type, as type parameters are not supported at +// this Go version. Its methods panic on use. +type TypeParam struct{ types.Type } + +func (*TypeParam) Index() int { unsupported(); return 0 } +func (*TypeParam) Constraint() types.Type { unsupported(); return nil } +func (*TypeParam) Obj() *types.TypeName { unsupported(); return nil } + +// TypeParamList is a placeholder for an empty type parameter list. +type TypeParamList struct{} + +func (*TypeParamList) Len() int { return 0 } +func (*TypeParamList) At(int) *TypeParam { unsupported(); return nil } + +// TypeList is a placeholder for an empty type list. +type TypeList struct{} + +func (*TypeList) Len() int { return 0 } +func (*TypeList) At(int) types.Type { unsupported(); return nil } + +// NewTypeParam is unsupported at this Go version, and panics. +func NewTypeParam(name *types.TypeName, constraint types.Type) *TypeParam { + unsupported() + return nil +} + +// SetTypeParamConstraint is unsupported at this Go version, and panics. +func SetTypeParamConstraint(tparam *TypeParam, constraint types.Type) { + unsupported() +} + +// NewSignatureType calls types.NewSignature, panicking if recvTypeParams or +// typeParams is non-empty. +func NewSignatureType(recv *types.Var, recvTypeParams, typeParams []*TypeParam, params, results *types.Tuple, variadic bool) *types.Signature { + if len(recvTypeParams) != 0 || len(typeParams) != 0 { + panic("signatures cannot have type parameters at this Go version") + } + return types.NewSignature(recv, params, results, variadic) +} + +// ForSignature returns an empty slice. +func ForSignature(*types.Signature) *TypeParamList { + return nil +} + +// RecvTypeParams returns a nil slice. +func RecvTypeParams(sig *types.Signature) *TypeParamList { + return nil +} + +// IsComparable returns false, as no interfaces are type-restricted at this Go +// version. +func IsComparable(*types.Interface) bool { + return false +} + +// IsMethodSet returns true, as no interfaces are type-restricted at this Go +// version. +func IsMethodSet(*types.Interface) bool { + return true +} + +// IsImplicit returns false, as no interfaces are implicit at this Go version. +func IsImplicit(*types.Interface) bool { + return false +} + +// MarkImplicit does nothing, because this Go version does not have implicit +// interfaces. +func MarkImplicit(*types.Interface) {} + +// ForNamed returns an empty type parameter list, as type parameters are not +// supported at this Go version. +func ForNamed(*types.Named) *TypeParamList { + return nil +} + +// SetForNamed panics if tparams is non-empty. +func SetForNamed(_ *types.Named, tparams []*TypeParam) { + if len(tparams) > 0 { + unsupported() + } +} + +// NamedTypeArgs returns nil. +func NamedTypeArgs(*types.Named) *TypeList { + return nil +} + +// NamedTypeOrigin is the identity method at this Go version. +func NamedTypeOrigin(named *types.Named) types.Type { + return named +} + +// Term holds information about a structural type restriction. +type Term struct { + tilde bool + typ types.Type +} + +func (m *Term) Tilde() bool { return m.tilde } +func (m *Term) Type() types.Type { return m.typ } +func (m *Term) String() string { + pre := "" + if m.tilde { + pre = "~" + } + return pre + m.typ.String() +} + +// NewTerm is unsupported at this Go version, and panics. +func NewTerm(tilde bool, typ types.Type) *Term { + return &Term{tilde, typ} +} + +// Union is a placeholder type, as type parameters are not supported at this Go +// version. Its methods panic on use. +type Union struct{ types.Type } + +func (*Union) Len() int { return 0 } +func (*Union) Term(i int) *Term { unsupported(); return nil } + +// NewUnion is unsupported at this Go version, and panics. +func NewUnion(terms []*Term) *Union { + unsupported() + return nil +} + +// InitInstanceInfo is a noop at this Go version. +func InitInstanceInfo(*types.Info) {} + +// Instance is a placeholder type, as type parameters are not supported at this +// Go version. +type Instance struct { + TypeArgs *TypeList + Type types.Type +} + +// GetInstances returns a nil map, as type parameters are not supported at this +// Go version. +func GetInstances(info *types.Info) map[*ast.Ident]Instance { return nil } + +// Context is a placeholder type, as type parameters are not supported at +// this Go version. +type Context struct{} + +// NewContext returns a placeholder Context instance. +func NewContext() *Context { + return &Context{} +} + +// Instantiate is unsupported on this Go version, and panics. +func Instantiate(ctxt *Context, typ types.Type, targs []types.Type, validate bool) (types.Type, error) { + unsupported() + return nil, nil +} diff --git a/vendor/golang.org/x/tools/internal/typeparams/typeparams_go118.go b/vendor/golang.org/x/tools/internal/typeparams/typeparams_go118.go new file mode 100644 index 000000000..114a36b86 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typeparams/typeparams_go118.go @@ -0,0 +1,151 @@ +// Copyright 2021 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.18 +// +build go1.18 + +package typeparams + +import ( + "go/ast" + "go/types" +) + +// IndexListExpr is an alias for ast.IndexListExpr. +type IndexListExpr = ast.IndexListExpr + +// ForTypeSpec returns n.TypeParams. +func ForTypeSpec(n *ast.TypeSpec) *ast.FieldList { + if n == nil { + return nil + } + return n.TypeParams +} + +// ForFuncType returns n.TypeParams. +func ForFuncType(n *ast.FuncType) *ast.FieldList { + if n == nil { + return nil + } + return n.TypeParams +} + +// TypeParam is an alias for types.TypeParam +type TypeParam = types.TypeParam + +// TypeParamList is an alias for types.TypeParamList +type TypeParamList = types.TypeParamList + +// TypeList is an alias for types.TypeList +type TypeList = types.TypeList + +// NewTypeParam calls types.NewTypeParam. +func NewTypeParam(name *types.TypeName, constraint types.Type) *TypeParam { + return types.NewTypeParam(name, constraint) +} + +// SetTypeParamConstraint calls tparam.SetConstraint(constraint). +func SetTypeParamConstraint(tparam *TypeParam, constraint types.Type) { + tparam.SetConstraint(constraint) +} + +// NewSignatureType calls types.NewSignatureType. +func NewSignatureType(recv *types.Var, recvTypeParams, typeParams []*TypeParam, params, results *types.Tuple, variadic bool) *types.Signature { + return types.NewSignatureType(recv, recvTypeParams, typeParams, params, results, variadic) +} + +// ForSignature returns sig.TypeParams() +func ForSignature(sig *types.Signature) *TypeParamList { + return sig.TypeParams() +} + +// RecvTypeParams returns sig.RecvTypeParams(). +func RecvTypeParams(sig *types.Signature) *TypeParamList { + return sig.RecvTypeParams() +} + +// IsComparable calls iface.IsComparable(). +func IsComparable(iface *types.Interface) bool { + return iface.IsComparable() +} + +// IsMethodSet calls iface.IsMethodSet(). +func IsMethodSet(iface *types.Interface) bool { + return iface.IsMethodSet() +} + +// IsImplicit calls iface.IsImplicit(). +func IsImplicit(iface *types.Interface) bool { + return iface.IsImplicit() +} + +// MarkImplicit calls iface.MarkImplicit(). +func MarkImplicit(iface *types.Interface) { + iface.MarkImplicit() +} + +// ForNamed extracts the (possibly empty) type parameter object list from +// named. +func ForNamed(named *types.Named) *TypeParamList { + return named.TypeParams() +} + +// SetForNamed sets the type params tparams on n. Each tparam must be of +// dynamic type *types.TypeParam. +func SetForNamed(n *types.Named, tparams []*TypeParam) { + n.SetTypeParams(tparams) +} + +// NamedTypeArgs returns named.TypeArgs(). +func NamedTypeArgs(named *types.Named) *TypeList { + return named.TypeArgs() +} + +// NamedTypeOrigin returns named.Orig(). +func NamedTypeOrigin(named *types.Named) types.Type { + return named.Origin() +} + +// Term is an alias for types.Term. +type Term = types.Term + +// NewTerm calls types.NewTerm. +func NewTerm(tilde bool, typ types.Type) *Term { + return types.NewTerm(tilde, typ) +} + +// Union is an alias for types.Union +type Union = types.Union + +// NewUnion calls types.NewUnion. +func NewUnion(terms []*Term) *Union { + return types.NewUnion(terms) +} + +// InitInstanceInfo initializes info to record information about type and +// function instances. +func InitInstanceInfo(info *types.Info) { + info.Instances = make(map[*ast.Ident]types.Instance) +} + +// Instance is an alias for types.Instance. +type Instance = types.Instance + +// GetInstances returns info.Instances. +func GetInstances(info *types.Info) map[*ast.Ident]Instance { + return info.Instances +} + +// Context is an alias for types.Context. +type Context = types.Context + +// NewContext calls types.NewContext. +func NewContext() *Context { + return types.NewContext() +} + +// Instantiate calls types.Instantiate. +func Instantiate(ctxt *Context, typ types.Type, targs []types.Type, validate bool) (types.Type, error) { + return types.Instantiate(ctxt, typ, targs, validate) +} diff --git a/vendor/golang.org/x/tools/internal/typeparams/typeterm.go b/vendor/golang.org/x/tools/internal/typeparams/typeterm.go new file mode 100644 index 000000000..7ddee28d9 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typeparams/typeterm.go @@ -0,0 +1,170 @@ +// Copyright 2021 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. + +// Code generated by copytermlist.go DO NOT EDIT. + +package typeparams + +import "go/types" + +// A term describes elementary type sets: +// +// ∅: (*term)(nil) == ∅ // set of no types (empty set) +// 𝓤: &term{} == 𝓤 // set of all types (𝓤niverse) +// T: &term{false, T} == {T} // set of type T +// ~t: &term{true, t} == {t' | under(t') == t} // set of types with underlying type t +// +type term struct { + tilde bool // valid if typ != nil + typ types.Type +} + +func (x *term) String() string { + switch { + case x == nil: + return "∅" + case x.typ == nil: + return "𝓤" + case x.tilde: + return "~" + x.typ.String() + default: + return x.typ.String() + } +} + +// equal reports whether x and y represent the same type set. +func (x *term) equal(y *term) bool { + // easy cases + switch { + case x == nil || y == nil: + return x == y + case x.typ == nil || y.typ == nil: + return x.typ == y.typ + } + // ∅ ⊂ x, y ⊂ 𝓤 + + return x.tilde == y.tilde && types.Identical(x.typ, y.typ) +} + +// union returns the union x ∪ y: zero, one, or two non-nil terms. +func (x *term) union(y *term) (_, _ *term) { + // easy cases + switch { + case x == nil && y == nil: + return nil, nil // ∅ ∪ ∅ == ∅ + case x == nil: + return y, nil // ∅ ∪ y == y + case y == nil: + return x, nil // x ∪ ∅ == x + case x.typ == nil: + return x, nil // 𝓤 ∪ y == 𝓤 + case y.typ == nil: + return y, nil // x ∪ 𝓤 == 𝓤 + } + // ∅ ⊂ x, y ⊂ 𝓤 + + if x.disjoint(y) { + return x, y // x ∪ y == (x, y) if x ∩ y == ∅ + } + // x.typ == y.typ + + // ~t ∪ ~t == ~t + // ~t ∪ T == ~t + // T ∪ ~t == ~t + // T ∪ T == T + if x.tilde || !y.tilde { + return x, nil + } + return y, nil +} + +// intersect returns the intersection x ∩ y. +func (x *term) intersect(y *term) *term { + // easy cases + switch { + case x == nil || y == nil: + return nil // ∅ ∩ y == ∅ and ∩ ∅ == ∅ + case x.typ == nil: + return y // 𝓤 ∩ y == y + case y.typ == nil: + return x // x ∩ 𝓤 == x + } + // ∅ ⊂ x, y ⊂ 𝓤 + + if x.disjoint(y) { + return nil // x ∩ y == ∅ if x ∩ y == ∅ + } + // x.typ == y.typ + + // ~t ∩ ~t == ~t + // ~t ∩ T == T + // T ∩ ~t == T + // T ∩ T == T + if !x.tilde || y.tilde { + return x + } + return y +} + +// includes reports whether t ∈ x. +func (x *term) includes(t types.Type) bool { + // easy cases + switch { + case x == nil: + return false // t ∈ ∅ == false + case x.typ == nil: + return true // t ∈ 𝓤 == true + } + // ∅ ⊂ x ⊂ 𝓤 + + u := t + if x.tilde { + u = under(u) + } + return types.Identical(x.typ, u) +} + +// subsetOf reports whether x ⊆ y. +func (x *term) subsetOf(y *term) bool { + // easy cases + switch { + case x == nil: + return true // ∅ ⊆ y == true + case y == nil: + return false // x ⊆ ∅ == false since x != ∅ + case y.typ == nil: + return true // x ⊆ 𝓤 == true + case x.typ == nil: + return false // 𝓤 ⊆ y == false since y != 𝓤 + } + // ∅ ⊂ x, y ⊂ 𝓤 + + if x.disjoint(y) { + return false // x ⊆ y == false if x ∩ y == ∅ + } + // x.typ == y.typ + + // ~t ⊆ ~t == true + // ~t ⊆ T == false + // T ⊆ ~t == true + // T ⊆ T == true + return !x.tilde || y.tilde +} + +// disjoint reports whether x ∩ y == ∅. +// x.typ and y.typ must not be nil. +func (x *term) disjoint(y *term) bool { + if debug && (x.typ == nil || y.typ == nil) { + panic("invalid argument(s)") + } + ux := x.typ + if y.tilde { + ux = under(ux) + } + uy := y.typ + if x.tilde { + uy = under(uy) + } + return !types.Identical(ux, uy) +} diff --git a/vendor/golang.org/x/xerrors/LICENSE b/vendor/golang.org/x/xerrors/LICENSE deleted file mode 100644 index e4a47e17f..000000000 --- a/vendor/golang.org/x/xerrors/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2019 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/xerrors/PATENTS b/vendor/golang.org/x/xerrors/PATENTS deleted file mode 100644 index 733099041..000000000 --- a/vendor/golang.org/x/xerrors/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google 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, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/xerrors/README b/vendor/golang.org/x/xerrors/README deleted file mode 100644 index aac7867a5..000000000 --- a/vendor/golang.org/x/xerrors/README +++ /dev/null @@ -1,2 +0,0 @@ -This repository holds the transition packages for the new Go 1.13 error values. -See golang.org/design/29934-error-values. diff --git a/vendor/golang.org/x/xerrors/adaptor.go b/vendor/golang.org/x/xerrors/adaptor.go deleted file mode 100644 index 4317f2483..000000000 --- a/vendor/golang.org/x/xerrors/adaptor.go +++ /dev/null @@ -1,193 +0,0 @@ -// Copyright 2018 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 xerrors - -import ( - "bytes" - "fmt" - "io" - "reflect" - "strconv" -) - -// FormatError calls the FormatError method of f with an errors.Printer -// configured according to s and verb, and writes the result to s. -func FormatError(f Formatter, s fmt.State, verb rune) { - // Assuming this function is only called from the Format method, and given - // that FormatError takes precedence over Format, it cannot be called from - // any package that supports errors.Formatter. It is therefore safe to - // disregard that State may be a specific printer implementation and use one - // of our choice instead. - - // limitations: does not support printing error as Go struct. - - var ( - sep = " " // separator before next error - p = &state{State: s} - direct = true - ) - - var err error = f - - switch verb { - // Note that this switch must match the preference order - // for ordinary string printing (%#v before %+v, and so on). - - case 'v': - if s.Flag('#') { - if stringer, ok := err.(fmt.GoStringer); ok { - io.WriteString(&p.buf, stringer.GoString()) - goto exit - } - // proceed as if it were %v - } else if s.Flag('+') { - p.printDetail = true - sep = "\n - " - } - case 's': - case 'q', 'x', 'X': - // Use an intermediate buffer in the rare cases that precision, - // truncation, or one of the alternative verbs (q, x, and X) are - // specified. - direct = false - - default: - p.buf.WriteString("%!") - p.buf.WriteRune(verb) - p.buf.WriteByte('(') - switch { - case err != nil: - p.buf.WriteString(reflect.TypeOf(f).String()) - default: - p.buf.WriteString("") - } - p.buf.WriteByte(')') - io.Copy(s, &p.buf) - return - } - -loop: - for { - switch v := err.(type) { - case Formatter: - err = v.FormatError((*printer)(p)) - case fmt.Formatter: - v.Format(p, 'v') - break loop - default: - io.WriteString(&p.buf, v.Error()) - break loop - } - if err == nil { - break - } - if p.needColon || !p.printDetail { - p.buf.WriteByte(':') - p.needColon = false - } - p.buf.WriteString(sep) - p.inDetail = false - p.needNewline = false - } - -exit: - width, okW := s.Width() - prec, okP := s.Precision() - - if !direct || (okW && width > 0) || okP { - // Construct format string from State s. - format := []byte{'%'} - if s.Flag('-') { - format = append(format, '-') - } - if s.Flag('+') { - format = append(format, '+') - } - if s.Flag(' ') { - format = append(format, ' ') - } - if okW { - format = strconv.AppendInt(format, int64(width), 10) - } - if okP { - format = append(format, '.') - format = strconv.AppendInt(format, int64(prec), 10) - } - format = append(format, string(verb)...) - fmt.Fprintf(s, string(format), p.buf.String()) - } else { - io.Copy(s, &p.buf) - } -} - -var detailSep = []byte("\n ") - -// state tracks error printing state. It implements fmt.State. -type state struct { - fmt.State - buf bytes.Buffer - - printDetail bool - inDetail bool - needColon bool - needNewline bool -} - -func (s *state) Write(b []byte) (n int, err error) { - if s.printDetail { - if len(b) == 0 { - return 0, nil - } - if s.inDetail && s.needColon { - s.needNewline = true - if b[0] == '\n' { - b = b[1:] - } - } - k := 0 - for i, c := range b { - if s.needNewline { - if s.inDetail && s.needColon { - s.buf.WriteByte(':') - s.needColon = false - } - s.buf.Write(detailSep) - s.needNewline = false - } - if c == '\n' { - s.buf.Write(b[k:i]) - k = i + 1 - s.needNewline = true - } - } - s.buf.Write(b[k:]) - if !s.inDetail { - s.needColon = true - } - } else if !s.inDetail { - s.buf.Write(b) - } - return len(b), nil -} - -// printer wraps a state to implement an xerrors.Printer. -type printer state - -func (s *printer) Print(args ...interface{}) { - if !s.inDetail || s.printDetail { - fmt.Fprint((*state)(s), args...) - } -} - -func (s *printer) Printf(format string, args ...interface{}) { - if !s.inDetail || s.printDetail { - fmt.Fprintf((*state)(s), format, args...) - } -} - -func (s *printer) Detail() bool { - s.inDetail = true - return s.printDetail -} diff --git a/vendor/golang.org/x/xerrors/codereview.cfg b/vendor/golang.org/x/xerrors/codereview.cfg deleted file mode 100644 index 3f8b14b64..000000000 --- a/vendor/golang.org/x/xerrors/codereview.cfg +++ /dev/null @@ -1 +0,0 @@ -issuerepo: golang/go diff --git a/vendor/golang.org/x/xerrors/doc.go b/vendor/golang.org/x/xerrors/doc.go deleted file mode 100644 index 2ef99f5a8..000000000 --- a/vendor/golang.org/x/xerrors/doc.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2019 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 xerrors implements functions to manipulate errors. -// -// This package is based on the Go 2 proposal for error values: -// -// https://golang.org/design/29934-error-values -// -// These functions were incorporated into the standard library's errors package -// in Go 1.13: -// - Is -// - As -// - Unwrap -// -// Also, Errorf's %w verb was incorporated into fmt.Errorf. -// -// Use this package to get equivalent behavior in all supported Go versions. -// -// No other features of this package were included in Go 1.13, and at present -// there are no plans to include any of them. -package xerrors // import "golang.org/x/xerrors" diff --git a/vendor/golang.org/x/xerrors/errors.go b/vendor/golang.org/x/xerrors/errors.go deleted file mode 100644 index e88d3772d..000000000 --- a/vendor/golang.org/x/xerrors/errors.go +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2011 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 xerrors - -import "fmt" - -// errorString is a trivial implementation of error. -type errorString struct { - s string - frame Frame -} - -// New returns an error that formats as the given text. -// -// The returned error contains a Frame set to the caller's location and -// implements Formatter to show this information when printed with details. -func New(text string) error { - return &errorString{text, Caller(1)} -} - -func (e *errorString) Error() string { - return e.s -} - -func (e *errorString) Format(s fmt.State, v rune) { FormatError(e, s, v) } - -func (e *errorString) FormatError(p Printer) (next error) { - p.Print(e.s) - e.frame.Format(p) - return nil -} diff --git a/vendor/golang.org/x/xerrors/fmt.go b/vendor/golang.org/x/xerrors/fmt.go deleted file mode 100644 index 27a5d70bd..000000000 --- a/vendor/golang.org/x/xerrors/fmt.go +++ /dev/null @@ -1,190 +0,0 @@ -// Copyright 2018 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 xerrors - -import ( - "fmt" - "strings" - "unicode" - "unicode/utf8" - - "golang.org/x/xerrors/internal" -) - -const percentBangString = "%!" - -// Errorf formats according to a format specifier and returns the string as a -// value that satisfies error. -// -// The returned error includes the file and line number of the caller when -// formatted with additional detail enabled. If the last argument is an error -// the returned error's Format method will return it if the format string ends -// with ": %s", ": %v", or ": %w". If the last argument is an error and the -// format string ends with ": %w", the returned error implements an Unwrap -// method returning it. -// -// If the format specifier includes a %w verb with an error operand in a -// position other than at the end, the returned error will still implement an -// Unwrap method returning the operand, but the error's Format method will not -// return the wrapped error. -// -// It is invalid to include more than one %w verb or to supply it with an -// operand that does not implement the error interface. The %w verb is otherwise -// a synonym for %v. -// -// Note that as of Go 1.13, the fmt.Errorf function will do error formatting, -// but it will not capture a stack backtrace. -func Errorf(format string, a ...interface{}) error { - format = formatPlusW(format) - // Support a ": %[wsv]" suffix, which works well with xerrors.Formatter. - wrap := strings.HasSuffix(format, ": %w") - idx, format2, ok := parsePercentW(format) - percentWElsewhere := !wrap && idx >= 0 - if !percentWElsewhere && (wrap || strings.HasSuffix(format, ": %s") || strings.HasSuffix(format, ": %v")) { - err := errorAt(a, len(a)-1) - if err == nil { - return &noWrapError{fmt.Sprintf(format, a...), nil, Caller(1)} - } - // TODO: this is not entirely correct. The error value could be - // printed elsewhere in format if it mixes numbered with unnumbered - // substitutions. With relatively small changes to doPrintf we can - // have it optionally ignore extra arguments and pass the argument - // list in its entirety. - msg := fmt.Sprintf(format[:len(format)-len(": %s")], a[:len(a)-1]...) - frame := Frame{} - if internal.EnableTrace { - frame = Caller(1) - } - if wrap { - return &wrapError{msg, err, frame} - } - return &noWrapError{msg, err, frame} - } - // Support %w anywhere. - // TODO: don't repeat the wrapped error's message when %w occurs in the middle. - msg := fmt.Sprintf(format2, a...) - if idx < 0 { - return &noWrapError{msg, nil, Caller(1)} - } - err := errorAt(a, idx) - if !ok || err == nil { - // Too many %ws or argument of %w is not an error. Approximate the Go - // 1.13 fmt.Errorf message. - return &noWrapError{fmt.Sprintf("%sw(%s)", percentBangString, msg), nil, Caller(1)} - } - frame := Frame{} - if internal.EnableTrace { - frame = Caller(1) - } - return &wrapError{msg, err, frame} -} - -func errorAt(args []interface{}, i int) error { - if i < 0 || i >= len(args) { - return nil - } - err, ok := args[i].(error) - if !ok { - return nil - } - return err -} - -// formatPlusW is used to avoid the vet check that will barf at %w. -func formatPlusW(s string) string { - return s -} - -// Return the index of the only %w in format, or -1 if none. -// Also return a rewritten format string with %w replaced by %v, and -// false if there is more than one %w. -// TODO: handle "%[N]w". -func parsePercentW(format string) (idx int, newFormat string, ok bool) { - // Loosely copied from golang.org/x/tools/go/analysis/passes/printf/printf.go. - idx = -1 - ok = true - n := 0 - sz := 0 - var isW bool - for i := 0; i < len(format); i += sz { - if format[i] != '%' { - sz = 1 - continue - } - // "%%" is not a format directive. - if i+1 < len(format) && format[i+1] == '%' { - sz = 2 - continue - } - sz, isW = parsePrintfVerb(format[i:]) - if isW { - if idx >= 0 { - ok = false - } else { - idx = n - } - // "Replace" the last character, the 'w', with a 'v'. - p := i + sz - 1 - format = format[:p] + "v" + format[p+1:] - } - n++ - } - return idx, format, ok -} - -// Parse the printf verb starting with a % at s[0]. -// Return how many bytes it occupies and whether the verb is 'w'. -func parsePrintfVerb(s string) (int, bool) { - // Assume only that the directive is a sequence of non-letters followed by a single letter. - sz := 0 - var r rune - for i := 1; i < len(s); i += sz { - r, sz = utf8.DecodeRuneInString(s[i:]) - if unicode.IsLetter(r) { - return i + sz, r == 'w' - } - } - return len(s), false -} - -type noWrapError struct { - msg string - err error - frame Frame -} - -func (e *noWrapError) Error() string { - return fmt.Sprint(e) -} - -func (e *noWrapError) Format(s fmt.State, v rune) { FormatError(e, s, v) } - -func (e *noWrapError) FormatError(p Printer) (next error) { - p.Print(e.msg) - e.frame.Format(p) - return e.err -} - -type wrapError struct { - msg string - err error - frame Frame -} - -func (e *wrapError) Error() string { - return fmt.Sprint(e) -} - -func (e *wrapError) Format(s fmt.State, v rune) { FormatError(e, s, v) } - -func (e *wrapError) FormatError(p Printer) (next error) { - p.Print(e.msg) - e.frame.Format(p) - return e.err -} - -func (e *wrapError) Unwrap() error { - return e.err -} diff --git a/vendor/golang.org/x/xerrors/format.go b/vendor/golang.org/x/xerrors/format.go deleted file mode 100644 index 1bc9c26b9..000000000 --- a/vendor/golang.org/x/xerrors/format.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2018 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 xerrors - -// A Formatter formats error messages. -type Formatter interface { - error - - // FormatError prints the receiver's first error and returns the next error in - // the error chain, if any. - FormatError(p Printer) (next error) -} - -// A Printer formats error messages. -// -// The most common implementation of Printer is the one provided by package fmt -// during Printf (as of Go 1.13). Localization packages such as golang.org/x/text/message -// typically provide their own implementations. -type Printer interface { - // Print appends args to the message output. - Print(args ...interface{}) - - // Printf writes a formatted string. - Printf(format string, args ...interface{}) - - // Detail reports whether error detail is requested. - // After the first call to Detail, all text written to the Printer - // is formatted as additional detail, or ignored when - // detail has not been requested. - // If Detail returns false, the caller can avoid printing the detail at all. - Detail() bool -} diff --git a/vendor/golang.org/x/xerrors/frame.go b/vendor/golang.org/x/xerrors/frame.go deleted file mode 100644 index 0de628ec5..000000000 --- a/vendor/golang.org/x/xerrors/frame.go +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2018 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 xerrors - -import ( - "runtime" -) - -// A Frame contains part of a call stack. -type Frame struct { - // Make room for three PCs: the one we were asked for, what it called, - // and possibly a PC for skipPleaseUseCallersFrames. See: - // https://go.googlesource.com/go/+/032678e0fb/src/runtime/extern.go#169 - frames [3]uintptr -} - -// Caller returns a Frame that describes a frame on the caller's stack. -// The argument skip is the number of frames to skip over. -// Caller(0) returns the frame for the caller of Caller. -func Caller(skip int) Frame { - var s Frame - runtime.Callers(skip+1, s.frames[:]) - return s -} - -// location reports the file, line, and function of a frame. -// -// The returned function may be "" even if file and line are not. -func (f Frame) location() (function, file string, line int) { - frames := runtime.CallersFrames(f.frames[:]) - if _, ok := frames.Next(); !ok { - return "", "", 0 - } - fr, ok := frames.Next() - if !ok { - return "", "", 0 - } - return fr.Function, fr.File, fr.Line -} - -// Format prints the stack as error detail. -// It should be called from an error's Format implementation -// after printing any other error detail. -func (f Frame) Format(p Printer) { - if p.Detail() { - function, file, line := f.location() - if function != "" { - p.Printf("%s\n ", function) - } - if file != "" { - p.Printf("%s:%d\n", file, line) - } - } -} diff --git a/vendor/golang.org/x/xerrors/internal/internal.go b/vendor/golang.org/x/xerrors/internal/internal.go deleted file mode 100644 index 89f4eca5d..000000000 --- a/vendor/golang.org/x/xerrors/internal/internal.go +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2018 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 internal - -// EnableTrace indicates whether stack information should be recorded in errors. -var EnableTrace = true diff --git a/vendor/golang.org/x/xerrors/wrap.go b/vendor/golang.org/x/xerrors/wrap.go deleted file mode 100644 index 9842758ca..000000000 --- a/vendor/golang.org/x/xerrors/wrap.go +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright 2018 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 xerrors - -import ( - "reflect" -) - -// A Wrapper provides context around another error. -type Wrapper interface { - // Unwrap returns the next error in the error chain. - // If there is no next error, Unwrap returns nil. - Unwrap() error -} - -// Opaque returns an error with the same error formatting as err -// but that does not match err and cannot be unwrapped. -func Opaque(err error) error { - return noWrapper{err} -} - -type noWrapper struct { - error -} - -func (e noWrapper) FormatError(p Printer) (next error) { - if f, ok := e.error.(Formatter); ok { - return f.FormatError(p) - } - p.Print(e.error) - return nil -} - -// Unwrap returns the result of calling the Unwrap method on err, if err implements -// Unwrap. Otherwise, Unwrap returns nil. -// -// Deprecated: As of Go 1.13, use errors.Unwrap instead. -func Unwrap(err error) error { - u, ok := err.(Wrapper) - if !ok { - return nil - } - return u.Unwrap() -} - -// Is reports whether any error in err's chain matches target. -// -// An error is considered to match a target if it is equal to that target or if -// it implements a method Is(error) bool such that Is(target) returns true. -// -// Deprecated: As of Go 1.13, use errors.Is instead. -func Is(err, target error) bool { - if target == nil { - return err == target - } - - isComparable := reflect.TypeOf(target).Comparable() - for { - if isComparable && err == target { - return true - } - if x, ok := err.(interface{ Is(error) bool }); ok && x.Is(target) { - return true - } - // TODO: consider supporing target.Is(err). This would allow - // user-definable predicates, but also may allow for coping with sloppy - // APIs, thereby making it easier to get away with them. - if err = Unwrap(err); err == nil { - return false - } - } -} - -// As finds the first error in err's chain that matches the type to which target -// points, and if so, sets the target to its value and returns true. An error -// matches a type if it is assignable to the target type, or if it has a method -// As(interface{}) bool such that As(target) returns true. As will panic if target -// is not a non-nil pointer to a type which implements error or is of interface type. -// -// The As method should set the target to its value and return true if err -// matches the type to which target points. -// -// Deprecated: As of Go 1.13, use errors.As instead. -func As(err error, target interface{}) bool { - if target == nil { - panic("errors: target cannot be nil") - } - val := reflect.ValueOf(target) - typ := val.Type() - if typ.Kind() != reflect.Ptr || val.IsNil() { - panic("errors: target must be a non-nil pointer") - } - if e := typ.Elem(); e.Kind() != reflect.Interface && !e.Implements(errorType) { - panic("errors: *target must be interface or implement error") - } - targetType := typ.Elem() - for err != nil { - if reflect.TypeOf(err).AssignableTo(targetType) { - val.Elem().Set(reflect.ValueOf(err)) - return true - } - if x, ok := err.(interface{ As(interface{}) bool }); ok && x.As(target) { - return true - } - err = Unwrap(err) - } - return false -} - -var errorType = reflect.TypeOf((*error)(nil)).Elem() diff --git a/vendor/modules.txt b/vendor/modules.txt index 4c637bfe3..78823d95d 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -103,11 +103,12 @@ github.com/prometheus/procfs/internal/util # github.com/spf13/pflag v1.0.5 ## explicit; go 1.12 github.com/spf13/pflag -# golang.org/x/mod v0.4.2 -## explicit; go 1.12 +# golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 +## explicit; go 1.17 +golang.org/x/mod/internal/lazyregexp golang.org/x/mod/module golang.org/x/mod/semver -# golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e +# golang.org/x/net v0.7.0 ## explicit; go 1.17 golang.org/x/net/context golang.org/x/net/context/ctxhttp @@ -124,17 +125,17 @@ golang.org/x/oauth2/google/internal/externalaccount golang.org/x/oauth2/internal golang.org/x/oauth2/jws golang.org/x/oauth2/jwt -# golang.org/x/sys v0.1.0 +# golang.org/x/sys v0.5.0 ## explicit; go 1.17 golang.org/x/sys/execabs golang.org/x/sys/internal/unsafeheader golang.org/x/sys/plan9 golang.org/x/sys/unix golang.org/x/sys/windows -# golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 +# golang.org/x/term v0.5.0 ## explicit; go 1.17 golang.org/x/term -# golang.org/x/text v0.3.7 +# golang.org/x/text v0.7.0 ## explicit; go 1.17 golang.org/x/text/secure/bidirule golang.org/x/text/transform @@ -143,8 +144,8 @@ golang.org/x/text/unicode/norm # golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac ## explicit golang.org/x/time/rate -# golang.org/x/tools v0.1.5 -## explicit; go 1.17 +# golang.org/x/tools v0.1.12 +## explicit; go 1.18 golang.org/x/tools/go/ast/astutil golang.org/x/tools/imports golang.org/x/tools/internal/event @@ -156,10 +157,6 @@ golang.org/x/tools/internal/gocommand golang.org/x/tools/internal/gopathwalk golang.org/x/tools/internal/imports golang.org/x/tools/internal/typeparams -# golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f -## explicit; go 1.17 -golang.org/x/xerrors -golang.org/x/xerrors/internal # google.golang.org/appengine v1.6.7 ## explicit; go 1.11 google.golang.org/appengine From 4b13921d95a8eab4f21e7714a88b8ed360154ce9 Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Tue, 28 Feb 2023 09:11:41 +0000 Subject: [PATCH 18/37] Upgrades for Alpine base image and external dependencies Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- chart/openfaas/Chart.yaml | 2 +- chart/openfaas/values.yaml | 14 +- chart/postgres-connector/Chart.yaml | 2 +- chart/postgres-connector/values.yaml | 2 +- chart/pro-builder/Chart.yaml | 2 +- chart/pro-builder/values.yaml | 4 +- chart/queue-worker/Chart.yaml | 2 +- chart/queue-worker/values.yaml | 2 +- chart/sns-connector/Chart.yaml | 2 +- chart/sns-connector/values.yaml | 2 +- chart/sqs-connector/Chart.yaml | 2 +- chart/sqs-connector/values.yaml | 2 +- docs/cron-connector-0.6.4.tgz | Bin 2948 -> 2948 bytes docs/index.yaml | 806 ++++++++++++++++----------- docs/kafka-connector-0.7.3.tgz | Bin 6484 -> 6484 bytes docs/mqtt-connector-0.4.7.tgz | Bin 2898 -> 2898 bytes docs/nats-connector-0.3.2.tgz | Bin 3069 -> 3069 bytes docs/openfaas-11.1.14.tgz | Bin 0 -> 34076 bytes docs/postgres-connector-0.1.0.tgz | Bin 0 -> 4138 bytes docs/pro-builder-0.4.0.tgz | Bin 0 -> 11993 bytes docs/queue-worker-0.1.4.tgz | Bin 0 -> 3146 bytes docs/sns-connector-0.1.2.tgz | Bin 0 -> 5016 bytes docs/sqs-connector-0.2.3.tgz | Bin 0 -> 4210 bytes yaml/alertmanager-dep.yml | 2 +- yaml/prometheus-dep.yml | 4 +- 25 files changed, 488 insertions(+), 362 deletions(-) create mode 100644 docs/openfaas-11.1.14.tgz create mode 100644 docs/postgres-connector-0.1.0.tgz create mode 100644 docs/pro-builder-0.4.0.tgz create mode 100644 docs/queue-worker-0.1.4.tgz create mode 100644 docs/sns-connector-0.1.2.tgz create mode 100644 docs/sqs-connector-0.2.3.tgz diff --git a/chart/openfaas/Chart.yaml b/chart/openfaas/Chart.yaml index 4e0c0ef88..abcaf4d1b 100644 --- a/chart/openfaas/Chart.yaml +++ b/chart/openfaas/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 type: application description: OpenFaaS - Serverless Functions Made Simple name: openfaas -version: 11.1.13 +version: 11.1.14 sources: - https://github.com/openfaas/faas - https://github.com/openfaas/faas-netes diff --git a/chart/openfaas/values.yaml b/chart/openfaas/values.yaml index 680e36995..a4c45853b 100644 --- a/chart/openfaas/values.yaml +++ b/chart/openfaas/values.yaml @@ -67,7 +67,7 @@ dashboard: ## now be set "enabled=false" when using the new autoscaler ## since it handles scaling to zero faasIdler: - image: ghcr.io/openfaasltd/faas-idler:0.5.2 + image: ghcr.io/openfaasltd/faas-idler:0.5.3 replicas: 1 enabled: false inactivityDuration: 3m # If a function is inactive for 15 minutes, it may be scaled to zero @@ -101,7 +101,7 @@ oidcAuthPlugin: securityContext: true gatewayPro: - image: ghcr.io/openfaasltd/gateway:0.2.11 + image: ghcr.io/openfaasltd/gateway:0.2.12 gateway: image: ghcr.io/openfaas/gateway:0.26.3 @@ -153,10 +153,10 @@ basicAuthPlugin: cpu: "20m" faasnetesPro: - image: ghcr.io/openfaasltd/faas-netes:0.2.4 + image: ghcr.io/openfaasltd/faas-netes:0.2.5 operatorPro: - image: ghcr.io/openfaasltd/faas-netes:0.2.4 + image: ghcr.io/openfaasltd/faas-netes:0.2.5 faasnetes: image: ghcr.io/openfaas/faas-netes:0.16.4 @@ -189,7 +189,7 @@ operator: # # Enable automatically when nats.queueMode is set to "jetstream" jetstreamQueueWorker: - image: ghcr.io/openfaasltd/jetstream-queue-worker:0.3.3 + image: ghcr.io/openfaasltd/jetstream-queue-worker:0.3.5 durableName: "faas-workers" logs: debug: false @@ -237,7 +237,7 @@ queueWorker: # monitoring and auto-scaling components # both components prometheus: - image: prom/prometheus:v2.41.0 + image: prom/prometheus:v2.42.0 create: true resources: requests: @@ -271,7 +271,7 @@ nats: host: "" port: "" # The version of NATS Core used with OpenFaaS Pro and JetStream - image: nats:2.9.11 + image: nats:2.9.14 enableMonitoring: false metrics: # Should stay off by default because the exporter is not multi-arch (yet) diff --git a/chart/postgres-connector/Chart.yaml b/chart/postgres-connector/Chart.yaml index a2f300eeb..c6de502ca 100644 --- a/chart/postgres-connector/Chart.yaml +++ b/chart/postgres-connector/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 description: Trigger OpenFaaS functions from PostgreSQL name: postgres-connector -version: 0.0.6 +version: 0.1.0 sources: - https://github.com/openfaas/faas-netes home: https://www.openfaas.com diff --git a/chart/postgres-connector/values.yaml b/chart/postgres-connector/values.yaml index 2e4b97628..ff2e9e4aa 100644 --- a/chart/postgres-connector/values.yaml +++ b/chart/postgres-connector/values.yaml @@ -5,7 +5,7 @@ # You will need to create a license named "openfaas-license" - see the # chart README for detailed instructions. -image: ghcr.io/openfaasltd/postgres-connector:0.2.0 +image: ghcr.io/openfaasltd/postgres-connector:0.2.1 replicas: 1 diff --git a/chart/pro-builder/Chart.yaml b/chart/pro-builder/Chart.yaml index 75a47820e..4d6e9f4c5 100644 --- a/chart/pro-builder/Chart.yaml +++ b/chart/pro-builder/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 description: Build OpenFaaS functions via a REST API name: pro-builder -version: 0.3.9 +version: 0.4.0 sources: - https://github.com/openfaas/faas-netes home: https://www.openfaas.com diff --git a/chart/pro-builder/values.yaml b/chart/pro-builder/values.yaml index 218a844a8..7937d77ed 100644 --- a/chart/pro-builder/values.yaml +++ b/chart/pro-builder/values.yaml @@ -31,7 +31,7 @@ buildkit: # nodepool for the function builder pods, which is recycled often # through the use of spot instances or preemptive VMs. # - # image: moby/buildkit:v0.11.1 + # image: moby/buildkit:v0.11.3 # rootless: false # securityContext: # runAsUser: 0 @@ -41,7 +41,7 @@ buildkit: # For a rootless configuration, preferred, if the configuration # and Kernel version of your Kubernetes nodes supports it # - image: moby/buildkit:v0.11.2-rootless + image: moby/buildkit:v0.11.3-rootless rootless: true securityContext: # Needs Kubernetes >= 1.19 diff --git a/chart/queue-worker/Chart.yaml b/chart/queue-worker/Chart.yaml index b48265cbf..dc1e3e0c7 100644 --- a/chart/queue-worker/Chart.yaml +++ b/chart/queue-worker/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: queue-worker description: JetStream for OpenFaaS queue-worker type: application -version: 0.1.3 +version: 0.1.4 keywords: - openfaas - jetstream diff --git a/chart/queue-worker/values.yaml b/chart/queue-worker/values.yaml index fd62c333f..dfe8528d5 100644 --- a/chart/queue-worker/values.yaml +++ b/chart/queue-worker/values.yaml @@ -1,4 +1,4 @@ -image: ghcr.io/openfaasltd/jetstream-queue-worker:0.3.3 +image: ghcr.io/openfaasltd/jetstream-queue-worker:0.3.5 replicas: 1 diff --git a/chart/sns-connector/Chart.yaml b/chart/sns-connector/Chart.yaml index e1ec8d9d4..27feb777b 100644 --- a/chart/sns-connector/Chart.yaml +++ b/chart/sns-connector/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 description: Invoke functions from an AWS SNS messages. name: sns-connector -version: 0.1.1 +version: 0.1.2 sources: - https://github.com/openfaas/faas-netes home: https://www.openfaas.com diff --git a/chart/sns-connector/values.yaml b/chart/sns-connector/values.yaml index 339987876..92451668d 100644 --- a/chart/sns-connector/values.yaml +++ b/chart/sns-connector/values.yaml @@ -5,7 +5,7 @@ # You will need to create a license named "openfaas-license" - see the # chart README for detailed instructions. -image: ghcr.io/openfaasltd/sns-connector:0.0.2 +image: ghcr.io/openfaasltd/sns-connector:0.1.0 replicas: 1 diff --git a/chart/sqs-connector/Chart.yaml b/chart/sqs-connector/Chart.yaml index 26c9fcebc..332f0180b 100644 --- a/chart/sqs-connector/Chart.yaml +++ b/chart/sqs-connector/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 description: Connect OpenFaaS functions to SQS topics name: sqs-connector -version: 0.2.2 +version: 0.2.3 sources: - https://github.com/openfaas/faas-netes home: https://www.openfaas.com diff --git a/chart/sqs-connector/values.yaml b/chart/sqs-connector/values.yaml index 572c020bd..9d65d3f2f 100644 --- a/chart/sqs-connector/values.yaml +++ b/chart/sqs-connector/values.yaml @@ -5,7 +5,7 @@ # You will need to create a license named "openfaas-license" - see the # chart README for detailed instructions. -image: ghcr.io/openfaasltd/sqs-connector:0.3.0 +image: ghcr.io/openfaasltd/sqs-connector:0.3.1 replicas: 1 diff --git a/docs/cron-connector-0.6.4.tgz b/docs/cron-connector-0.6.4.tgz index 438e8cfecd7b7168003dc254e12ef313517dd3c7..043c33d8a86c72cb0bb5f1d0f9fc6d7fdc4b3fd0 100644 GIT binary patch delta 2896 zcmV-W3$OHq7lap(JQVwH8#nUL&-^RqE4M(KZ?%#iv5S#V8GqKrzQ6rIa$j0K9p@Yr zXZ~Po`51m?$QcfY6DcYBkrV#I>^B`d+EhdFV6-i-G7~5}94H{$^GdjqqHmC;G%p)!nInstkml%&^PCpeGyY$eTA?F-(5PmpIBNT0>5@JemZ2hj4?Ckw7=OwHDmNB0%6JHrOPC@tOlMUHklpqvA%yKB;F55eG- z8RVQYVF|ov8Nvk398tih0@Z?v#9=BW?+9AKfsRs)3yzv7oD_`5uY^H0qdbJ;p(aGg z7%z}}*}~@=LX707Jcbbd@lQhNbjk!X3*S7UnnlkFlZIeafrKcm4IO~OPX%h@egkBf zNq@Bnp?7-nE9<$cC@(_j9S(5D}anyPqt(D5g_(1-*Vl3`OjIdxXywQiDM2Ii>~Y3;0w} z&ZZ1wpn2}F2juVQsk{Eh&SCkm27fQ2g+|aaL-<=UK_$?j_8dl~^=zSTCt%))z z)9}M&;iU26&4ul2eKeh8^kYC?O+k5kXR(&>h*h}bKH-~QZdZXU0IQ`b9>7m?1*?9hYcPT@0_i*rz^Z&`o@mc5mKRY^o@c-|nwBx@t z&-Gw-NG_R(LwHed0Ft4hF@H7GUfrF!D)0OU@K&*e3CiKG$g{EyX0DOud1$@yYD=wp z1OeRK_&|Zoaw$-lmAI;FwKmO>YMZ*7n|@QX+2EBkq^Ov2VW;-}-~!c*x!Zy3R36je z${nJi!m~i9gS#X0LF5h6X^!-u>Fw?@tI+)Q<{CZ~(m0&Nx*a||lYes-Q60h|0nk<4 z#|LZdjq7!5C2zG{JK(SM-nP6Ifhvg9Y&2W=62x1Aye-UK`>+zM@7cT__?kYfeHf@n zcO0`;c(e_m42{}FE<5H*2ClZ4wqmwe58vc2;u*cPC)I9(~zq#L8YfWY?v+QGb3b;Hn9G?rEX7mfO}u zTqZj3&k{E`>*UwtG8v(WWX!~#@`RJPBXjwf{7S~fx}?~a<~3? zv9H+qC5}A8Hh&mj^QO_derv!!Yqn{l=IPt*CYGw_lKm zJy^YL1Gt7#xIec^ZkwTcYHFz0k56}`+D>PU>*BIRNQGZ- zj$Q9RPge7Pj!#Y>?tk}D4&a;`gG#v97QgZ^Pf>t7Jb#%;Ag9qKO;88q0N$reH*e`W zMb07Na^i0kOe8-@5cb_c>q$lkroo< zsDLwp0SR7Qj4q5+NDkn+%rYt9!}AM>nbIUkm>Iag9zF>s|55|@x2i~!f&Ei`>X{fc zgeEk)EPrwr`_|-fpyxSx98BmXc^sH5Cy)P44&Vb-Ocokmy?CjKb;>_tWJthbqyyhi z$&VzM=}5*n_!F6pj{euLb6<0gUGbm8(_u&dk5A4X^8fCo95mT|&y^I-3oIcQWjaZd z@6t+HfkIo`Kz-&3UgZk4W>N%%)C8?RgMv;tYJYdNriM)zw@1EHd1+EqQ13kr)Tixe znxRY93*Z;2{JZeWI)-i}%%!^g$<-T~vk0<68<5s`l-F`+M4V?0W4FO84#oi?2M2Jj zu&?k_!89}I-=Q6il+F;Sqi>n38DT;j%DLm*Q+VZTTz(K$mo!E~#^dpX>Xi8JYEU;I zK!2LSQ>mp!r&Iswlvp8;;@vjaFb7^I1 z&wKYqQBCgG)e`bK0rsoB{|60^2b*Y;?>tFIpT=>GyUvTO(<{rw0VW5|V|DLr15yzv z@XKo+VGbuHoQ(5pBCRnDnV7wE_1(tTvr}%C_QqI0S z)FSC@#xKXRFOnu`H(o~a+q>7!d|EYqcK)i00|q-Junx(%w=I*kH}**Cz`(dQbakJ& zZZ0oxKuXZzGdB8+JV$hop(Xwf4!m zvb_4ZoXZaTA#arT$9*9*NcNIRD|pw)p8Gq5mzR!LjxldX>I?g#L z&U|5O`7r#=kTV<(CsI=MBPj$%MykQHlqwS}X~rLXy)qmQhi9j!?*DK&?EW8~9iKfI zot`{CeSCcS=;ZjpaCAC49X){ISH!Tj6xvYrV0i1fy3GAa3eDMjRGLWcr zTrQ-Fbx8U!tI&}?XjF4l9JT$hbV(l!%TSTNhn-O-41Z+;l^cs0WjqAR@zY;c@B;{H z8MH0PIn%^{uj&oavQQB^QWdYB&lTqSOhm<$T1D%OpI2)z49K+1?sPC z0QTtr=y-J8)&G;T$M^bw7lmas!4Q%(QUQ~V8m{h(&~D2SAqh3Opv&LhzVbS4x4EyX zwLbiL_8oS|pI6)-*v) zz*kh0*j^WCz@!LVCNPsKqvj{jMV?D#G(=Kp$q}T24_XQWWtR|oWmAukBX}w1@)BXr zs3S%7QbeheLKeC3YW;-OJ-gK56dw(nxN=x@{nWLQ!DCfZH?wYjPLooQs z402AHums+*3}K39fhgc(fojP_;xLtxcLc5AKu0OY1xHO3P7B84m%^Z$Qy#*}P!l3# zj2FngY~k}YAx3gk9zzKK_$MKBHe-UBrEi{6&7!A;NkcHIKtdGOh7LgC#{#u+zX3AL zq<>n5&^tT*mGxXzlouiNM#Ev&bL+xc#!R`AtpUf6&g_V9tqK2|rDOjMW;v$@_2BiJ zcP}mi^U2(Pj(z^$>9A}6ADx|?+}r=VDCZohwnm9_xo~EM32jtS`gv1y)e;gku#^Q@ zX&HSXTibaxA~55O z%MLW?&%X5veA}{B z|Hmov9F-1Cep^>?kNzJIPfj}efA;A3>|X!xqI~{5cnEWrg`m;EjBzx}9G_%XEPqjo zAv_#hUlZGly!ez;5j#D#cOZ~6_d9YS15)d~a_6VOTqy~Z3bIc0Pm+-Nm zoXr@kHf0`e-`G=*NJ(oPqN8$P=-?9%Vv%!TCC7V8J+tDMFzwP7Tz7FVXH0 zuI;rdU^c7eSvA%&t@>>3aFEcsZYX`{7zm#nzOF5twJbc96~oz<*pZVP??# zUiZJ(y$&@$?@e~vw%;o|u(h;SWy;&VT~@cedHdgGLWkfLJ7g`L{>g9}u1=57bBQ+Z5> zYj=o-3eN(a4sMUg2a&f(r#aGtrnkGttV8qHn=ANONaJu4>vs6?On=T_P}53y=!?Z0#y*H*=V-#6^J(kc~hAC_F*Mh-?Mo=@HKtd_%KkB z?l@+x@Ms%A85*^VTz1Tr3|wuyTkYfQ9J+a!h`Uw$VMQ{_sEC_&uF8fc6Z8a*gms{g%RKvB$Br}xq>W1!V z`2`zivJhsR(=DUhYuoEU?5yS*?oPmZGy1aAn3cWu$gWFstAG5~z*Q6W+|xpDBe$)I zxJ-25pCzuZH_5NZWimz)$(V@)$@xc#6?${Yiwu9Yi_kKOhiPzwrBt>R5DIDhM(|}B z=5IH-H9w~&?JV#?O54(^?w0$KDVw=g-XYomnzb)G*lUjboo06V1rsp}1EXOBa=-p~ zv9Hl=IPt*CYGw_lKm zJy^YL1Gs`xxIec^?wX-`YHFz0k59Lx+D>PU>*BIRNQGZ- zj(zVxkJj^lPEH@)-~aBS9Kks?29);k)i;1cz-gHKu)7enxGEI5xh&8Zr;*$ zikw5j<<#FOm`HxIwM=_2KG<&spn$Q z5Sr5HvVX{3>|2wEfnMa~VKAkaWI{II~&V9`}_QiijXTy&EpPW9v&;PrVa@1t^JyTLNFR+AMl<6c* zzDp}*1qy9#1NE6F_$gPYHIpJBq$X(n85DHNQGdIuH8pI?xIOZn%1e`?f_m?1pgwI! z(+pj*UI4#H<==&0)G>4;VIkG!Pp;m`oJEio+JLmiqr8?oBjP-3n79pIaWDx8IXZ%K zg?)t|3#OSt{|@bFq;!rz9evAO%?K0PP|h9ap2ACCg9$-><`Fb$`!VXg;`UdGq{o8Bt#EvG&Vm!*jw6MBHwz zU8xTZFP1?39RE|18aegKXy|{E7qP#F=I*LeO-{b&oCoba84D?(4cDF zwXWcKlkp3;E|#2s1>D|+TtR=mz{c7yE(efvNG2_{n$%3Za7GKHf|zOdbH%33kbjy& zp*~b56PFD**)5Yc5+Ayoz!khpJ9GP>o=K?zoyvm8FvT*p1>?O)F0izVKE-znl5+Od zp%zJJGk!UiLy7*=F_U_)AN^A95C1;flWvzyjsq3ip^ zb#t+SFF|7M`i^blk#s_h6F2lm>3^yRAUSBqwt|z5?i`fxdJ~z{*|3}8I3!I3uC-6j zmF3mP~y4|$`!KOPF9L2{5xTEV+UChy8*Kj+cyw@l{IS6c1_6DO%?6Br(#1c^|0lTKz3V@K zB~3@hc-Dr2TIKjO)oh99ID!ZL_wNH;DtLC4n+>M9-KWzlaxJ#PlLi z|F#HE{eGgaV_GnOwu0Xa!swJ@0wm83_9*xTEp<~~={j^fv?hy5ArT}`5<3P?(K+ z+u|ujmPjB1?c&8Rz^R0nx_wOZj8;qg zLTa4SYz;Ez&~9O_F4bf(otFIcFH4^KG8+rri0MpLl)f~74H!MWdB4_hmb|c38alng z+IV_vfM$1R3cbI`@Gr90qGs#8%}CqyyD*+1liUuHsyL7 z8&v1F{q0Wl;2H$xOizuyzxAMZ(Yu{Y{n5JV^Y!ts&GWxCrOdYb>VAiT+voq`(cz=^ z{Qvmi@X_ag`TtW~_49v{=d!;X1`C=cBlx!L{~$$05~9c`0IROtCLhW3k+#MCpjn^v zBY6MbZvOE!=NV>d{nXsN)_Tj(s;jg2@5AcJW~Jt;n4_S|ocPt32j?i3)GQ86AvYC| z)|L>y0Lk-cQO^4j<$ZhBf3s$;e{EJ(S$wM+ORs=`_116vW(R}UKgfwtA)k&akBRPb zDaptTlW?-y%Gf!wG?MfF{d;mNzbkVms!E&X-#UZss_+_qFSs%|wMAyPs{N^~{>0fR z{-Gr+{XV$e&DM+87qyXptFgaz^aoIq@H^*~u$hXoj4QVX?;Zi5) zpr=HCfxQida<2QO_hj&7=!>vMi*DJboigpYt*<3#MT)hmLf6ghqyDl0xJ}Mc?TLT( zRN@?P{h=(mKkeZPj(3)W^*zC`K+RQ-1^xLwtqLgs2-;A(Tl3tZKH?yMHGWm7J_B)PNq zi$bu*djR8i*^sB|n7?kqbWwFKU%Lp}V!Mc$-GvL`ykT|{ZTQaIj`qcbC#&04@C{E^ zH?72YBiyQv(iv%26~-lQE_lWZc~QB4X6&q|PqX=ocw3 zGIf!YjTGuq(OW~iu4r0w*TtMmwUa-UAKndF({h^JguxfPaK4v2fwbvvLDSLn7RZ(> z<|dG?*oF7_+zGNx_jVv_le@x9U8q&QTiR#t5QqiUR}_Cbk5xb zhw<5kE4f>nwn*L!o_8hP1S}<27smH=C#sUtz3?;~)i!~0g)XcQ+)iXons*zkJ>$*V z+n}Oql`%e(k@bar|Gr!C^>lAz7W0H=HzsMlVOumCUU1E}RHEvNz%?lTPm*eB&1jZj zreJu`Y_DA_ztkF8cAF7f7R?ra5J_HTY~}p=nlFu}KO<`1QtDl%^sOhNjw$F)U~XvG z?XdB0u++XgySA+eZm{gWcg0=nhZ?K4*x%hY|JJqmz0o$;3Dx5B4$Fic%k=w0{eTOL z?JM|uL*2X<3H-eYz9^4jYYx5@(uUh_@a~=0P!U{%Q&CTR=@v8AYViJl!4>t=WB8tw zYp%!@@w$KV&FTNqXD>@McbB6)q&_$QaBRpV$);n#~@9Kt>c@BIwm*?K#PkU=K2! z*|qOixxgvC!o-UCf9ywpp!Fc|%zUXKL5>0#%`gh0Z_h8z6&D!n!6{Eup25$j=a5h# zgJ?!o-~4Og2hrqTqHq5759YJJ{>R_SW!A3VAGKIDtewH2KVf{h=agqtR@eZ)x5mSu`lyy+A@;>+7Wd;k)V54$ zip%{7zVqB9Nn&FB2m_wmp)f~*BY0bd?&$}eb!eK_$wBs&K=er}XciX}qDO^k#a`u2 zAF4T86s9YGeyFifGw$sPU1C<%Mf7b%d4J#V@NL<4IAy#@s)A)}qgcP_@7s=?a5aYs zVrJOy=hrGSw-oLu2ws`sZRc)cVr*?0Mi&ULG091m5Rh|Tu*8fH!$0TvJK^%JbC?x0DF?pp{Fv*GDbNF=(v~rQ!I(DIQj>jKr}FDpzZW!Kn72`y z?As_tJFFltM9!r)Of(8V#7&5S=C)?G^T*WBjEo9QeDIV((Nqmu1Nu}1dLkbM!FW8L z5IL{KAZ!Z3GRwV2yp?{^-m38hYk^qq&C@S`c=hsGzm(zri|41$emsAsA?T)@B-Z!3 zL~GrDM+N5G3>53HXNrtlifU|HW*xQR7tM;8r>R~I)nYzO0EYQok`yby8X(f~&jh^I zRLFQdHk{ES;cz5L#elVZ5Kf9HuVp~#`|pcWI zRzlAt(wOLn-JjJ$I)kHHky?NyooWnv7By-mo6=b!T#)ZcrM1_`h}GgWgK;f^%{U5w zf@?S59*l5?E>Q?3z^GO{wHzZCL_N2FnMh(HgkFd1UWrjkpKit;iCPXbiQ56UPEbq0FUb{6i?opi$Cs@j#e}hk z);OJL)AW1p5|QZfkT{i~0nu!>vsjAe;Q%k_lHzeRGu`2G?CMn5(KMdw; z7#|MS#HkIq@(*c_VLi+J^!i1a@8RU^x%WHyI3w5q-j;}BYymesImXquF6EN5F{~pA zpO%?9NPVRGyejt;My<0%v3Ur00RDz2t8o)BFVQr?Pk6FwW*4d2a7WxX6S}q^%NTY5 zHYGm>-WvjLho6;zeXLj+Y-px`bsIh92X+-lT!ktCpZtcgx&!KK7;n=N4zMJWb<8R7 z%w#jLiB?>`D`)vQ2f{K9#|OJ^#^ElX-7#Flk1m4KEn_rK4d4%tvktg3O~|+daMPoC z8{jg*%Et%nt7-!F=c(h?w+3(xt+sbhPap(_dYRr%tno1b$8D>^0xnN~R>wO5uiNJ4 z_lIi58ekMnJ{rK~>1y-UO#$bEF7@99uI`Py4S0d8aR-MhH>q*`+jCSvY*w>VTLg?N zRZ@tCNl{s3_nxt@VchHOG=7YW)mo|RGFe6!K0vZ2ZM#dk-*-p{EmbRKZ(%uGrD zWweG*O4d$O=TdXs6Yy|-vP8gzECTI0rV=bnC2!3l0o0(%1 zn+@QGzgEp!du9_p+LU*Cxna|oeJs<`19oZTx)B?|mCsjGt=VLN))~y0J|F+O+0Rz|0eZfkPD-8BxhSp+8uy@w|{>f1m`)%bh@$$ zobqy0r6|{j<1mz{w3>Zt@V$Ll{`_?eM9d0fp(zeyvmfU6wZ@S-#c6EZls2Bt2hhJ7LUhI1A1oXC%WaT1}eW=m|p1kYt!Zkz1QhqZ+k0?J~dpR^Qug zS2rGy|3qiL^{ahB zXP^>zl9;VMqO|=h6&yYUuIKSfDzP$-d@5S7!NW01ldZ(1#3Ar|!9|f8^_g+A%_a0~ zfQe1Znv#`&OVdpypb%Wx4PCiPbH!6_hY?7r*-qYtP`2`rJiF*7_-72uu55= z><@=eJO_Ln`SIWUe(kukSH|!yk2Ondh$58+y`B$naZ6iVUAKnaytA+`}&>gylVc7-=y09DM`aw7)rssxT zJUA;RjLNwle=eW0WxeGF2!xbSTDi4n3t&rE=DT>)Wx$Sy`b=;4C2Y zD@k*I%CXKS``H{x!cfYRS6>glKIr6CaF-7AsLHiQ7*04>QVEiW_J7gX1Z_7Wf7U(0 z88v4V&Hg#q?{rS_Om9sgHSO(s_mwt5(HLt%aJXNN_H5--|CT5Jy7;+!MnugcpxjL2 zqH6%6f`u~am>>;|6eqZ`+&4m5+tJ=+fzHu%Lf}{P0mqPX54;a@U3w+Go-lsQ( z&5?{Vf6WP*k*8YKo2%7ipIwnOXIRT!ZtPl{ro(Ys7Y+dGY4C5--2p%?FEhYewq$@t zu2_Ipwpf5>zSy!;>!6K$3>X)ejpxN%8e&KI!QkL{a5Om%OMi^7hl5FEd~FPAJ?o5r zhJ&vM$G%n0AHUrwfJU?0DQjUz%39c(vbK`}Ee9aWgcqp(D*buC86#!@n{?irnUOEz z@JJkd{W!ux@Ek+Eh#y9?IFDN1M2!w!V}*Ng_YVF^S`liE#Y)%43DlfK>?qXF1D9%M zi#J8LA4P{N#RhMR`dcea5cQi<89-fs|9Gl)0IB^9Rso>RK#K^(#99G$@uHxlW#n%LC_v;DO>MXs;sQ3TJY z#%I(2M?C_iP3$WGvn3Tg)3eX0qvHjpe2G<;cXenNv;>U@Va}7jTe($|exogz9i^vr zF22gGBN1CYwBBD1wKqUUjdpDxAzNQe{(1L+K3|`&&)5IY>;D1(0RR6GlN6)?bN~Pl C_G5kk delta 4672 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 Cmr()$ diff --git a/docs/mqtt-connector-0.4.7.tgz b/docs/mqtt-connector-0.4.7.tgz index 70295e076a41032f2264fb4b2232822ce34ddfab..dd6570ac8dc068b6d158d72e1ce53312781223d6 100644 GIT binary patch delta 2866 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 QF8~1l|0Lj5X8<{9 diff --git a/docs/nats-connector-0.3.2.tgz b/docs/nats-connector-0.3.2.tgz index 075d3599107c9bc8f97b059a8bbdb8239a07e9a6..30193a72fb802594b5b4dfa2c947460fa9c41e04 100644 GIT binary patch delta 2673 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 delta 2673 zcmV-%3Xb*t7yTEIt`8?qj!sUGj~l#)Wps{X zn5VG{nQU~iyGh1&w~h#jsAlnm7A75oQ3Vom(3pxjHMpW{`1`w`NcnqGDDF*w)f4}& zHWK6SN8gX^2%KpHat21`EY_egr-~X(AX-C$oMp_QBL3?b1`e7*Z5|J7?_4oqY6}1g zbuNWQf8yRxs>d5Z4}ZBV#>KD z)#Ie38N=~N6QZ!TWB>|37O0K;4Ul0b)p`trf3uTUY~WtSc`=5;;b@fEXS-q<^W+EZ z4o9bFzQ;kY&)44a_pQ}>_TONZb81izU%z?(;yg5;%wGvTEk%f3$bgh|0VFtM z0%6dY4@*6Op!rSA}RBFOxD2-$iRDjpwh=Ev+@8I>-27NM6oBd0XWNvA12yg!Y2- z@0fuV;~XM{LR*{~r~_Z3-632{)fF(C)$*)9)-tVVwh~-R=v+4=ed8uD{^9!T+QM1O z!jIB1>J8S;+ZzLPPW%i8-|FC7e?91p=K0=ar)~S)*@3O4wJKBI^X;;_7bTnZFsBZ%t0TC?SbYFo3*%bi_*MIQaP9-Z6;XK- zk2kIm6~O`g6?ryXe6K-aEVB$nf{CBCkM6*-ntQmY{ezInp$`#XPaK=Q-R(=nJD_d$ zspH3+V%pkg_d;ya=TwKWh*2M0X zxG7$LdAxv+g)|PP_1kU7D5-b{?hOI&Q|n5Sf1a|*yi~mdxH7E* zbt?nXE&01QZ3F-)mgCkVK+g&82R*yJ8x(!I4iSJ$jdZYV4BXm8eLU8w+QPRL9^cEd zMZ1k#HLMSj?;Wv>v+o(K8wuY#XqWtEgS#;M4LP_zyTsqx4o%u(8=i(@FO1e;dnTzd zR%j-fEQFclblcd2f8mmp5lfTf+au7@;C=47Pb;rBr z)?Z3qWcbQ%%^v4^@i&!0Ax+*0zAlr0-H&dYzojPKwWBvge{c=B9_kfmNDras*PV=i z_qx&Xpw+1b=4<=pciDRPztH+;Y%Zk2FUMnF{^#`Qte^isKE2QX+(|otx6~L^!ewIo z%EKx}0nUsuF^8PS3pz&~k^^|3G7Y-ObE%95og(Kj=Q8rXFB9{}_KHOfTO!y)uJxXZ zgdBjtxi|mcf8`2i>=P!iVkU+Edl-VXCLo3DX(2(53OExOlJNQYMebtXnmh{iDkqP^h%U&Z z&}2Dz^e=J%AE;uo(D3s43r)gY$=@+HBxDKFp{G;we|Hitbu1Gc{(&q=PygS&c>4U+ zi!e*RB#%A%e|9u_($oLr)BF0LyJ-hEtMVi7Q*0=I?e3o6zS~g+*GtMiEYrQZN%aD2 z)!!HixI|$zh%%CPDfR{d@UE{Ua z=wD<3e_5doq;!cuVI|eV8o7E-Wft5SsSv94^^A!Ge(fZ^nQ%e;M8>+AxP9srKDOeh z!zN%dJjhwR2<%}SNENJU#sg=6f|*o7(3Auo`RM8CWb*|Sg;CWNq z+y8i*W(W3}zikBM0)j0Kwtu=^+dHs>HEqRHruBTTDq?gWrn`z4r#nPsSv9wrhSLi{ zBaZ$u;%+d$lrY7bwPR~9So?`h~24dY*=CCscR zmOxT&OVCC!F%SK~)8moe2djS_ZeYEvF31*7NoGw)jmXHds4}DZ^^sk`^mG?056efr zHpwpFy^n_(39FQqB}$JmoTM-5(BAH?}x!b$(NryfD=X<~zxyV-5Ry%t25e>d2Jv0qQpGOAViM_oVU&MsdNQSG^=Hn7P)g7iM# zR$RN3y|zMS&}`c8{jLtDRdvtK_3<^$R`HuNdB23JA;NCe^c4Uv2szI&X0tUQjZ?_$ zW4q9HX`Ig$1R4!2aQ%Z5)vu51pTA9ks(InWVp00960W=;n%06YKyKioS1 diff --git a/docs/openfaas-11.1.14.tgz b/docs/openfaas-11.1.14.tgz new file mode 100644 index 0000000000000000000000000000000000000000..83629449570e4cd738b36783a0df4b8412778919 GIT binary patch literal 34076 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 WJbk|O=l=!(0RR8K`_*ayd;Dc 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 literal 0 HcmV?d00001 diff --git a/docs/sns-connector-0.1.2.tgz b/docs/sns-connector-0.1.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..f3538c8479806914020802dbe0cc485e1ab7581f GIT binary patch literal 5016 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 Date: Tue, 28 Feb 2023 15:54:46 +0100 Subject: [PATCH 19/37] Remove basic-auth-plugin from chart Signed-off-by: Han Verstraete (OpenFaaS Ltd) --- .../templates/basic-auth-plugin-dep.yaml | 108 ------------------ .../templates/basic-auth-plugin-svc.yaml | 25 ---- chart/openfaas/values.yaml | 10 +- 3 files changed, 1 insertion(+), 142 deletions(-) delete mode 100644 chart/openfaas/templates/basic-auth-plugin-dep.yaml delete mode 100644 chart/openfaas/templates/basic-auth-plugin-svc.yaml diff --git a/chart/openfaas/templates/basic-auth-plugin-dep.yaml b/chart/openfaas/templates/basic-auth-plugin-dep.yaml deleted file mode 100644 index b403aea1f..000000000 --- a/chart/openfaas/templates/basic-auth-plugin-dep.yaml +++ /dev/null @@ -1,108 +0,0 @@ -{{- $functionNs := default .Release.Namespace .Values.functionNamespace }} -{{- if .Values.basic_auth }} -{{- if .Values.openfaasPro }} -{{- if not .Values.oidcAuthPlugin.enabled }} ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: {{ template "openfaas.name" . }} - chart: {{ .Chart.Name }}-{{ .Chart.Version }} - component: basic-auth-plugin - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - name: basic-auth-plugin - namespace: {{ .Release.Namespace | quote }} -spec: - replicas: {{ .Values.basicAuthPlugin.replicas }} - selector: - matchLabels: - app: basic-auth-plugin - template: - metadata: - annotations: - prometheus.io/scrape: "false" - labels: - app: basic-auth-plugin - spec: - {{- if .Values.basic_auth }} - volumes: - - name: auth - secret: - secretName: basic-auth - {{- end }} - containers: - - name: basic-auth-plugin - resources: - {{- .Values.basicAuthPlugin.resources | toYaml | nindent 12 }} - image: {{ .Values.basicAuthPlugin.image }} - imagePullPolicy: {{ .Values.openfaasImagePullPolicy }} - {{- if .Values.securityContext }} - securityContext: - readOnlyRootFilesystem: true - runAsUser: 10001 - {{- end }} - livenessProbe: - {{- if .Values.httpProbe }} - httpGet: - path: /health - port: 8080 - {{- else }} - exec: - command: - - wget - - --quiet - - --tries=1 - - --timeout=5 - - --spider - - http://localhost:8080/health - {{- end }} - timeoutSeconds: 5 - readinessProbe: - {{- if .Values.httpProbe }} - httpGet: - path: /health - port: 8080 - {{- else }} - exec: - command: - - wget - - --quiet - - --tries=1 - - --timeout=5 - - --spider - - http://localhost:8080/health - {{- end }} - timeoutSeconds: 5 - env: - {{- if .Values.basic_auth }} - - name: secret_mount_path - value: "/var/secrets" - - name: basic_auth - value: "{{ .Values.basic_auth }}" - volumeMounts: - - name: auth - readOnly: true - mountPath: "/var/secrets" - ports: - - name: http - containerPort: 8080 - protocol: TCP - {{- end }} - {{- with .Values.nodeSelector }} - nodeSelector: -{{ toYaml . | indent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: -{{ toYaml . | indent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} - {{- end }} - -{{- end }} -{{- end }} -{{- end }} \ No newline at end of file diff --git a/chart/openfaas/templates/basic-auth-plugin-svc.yaml b/chart/openfaas/templates/basic-auth-plugin-svc.yaml deleted file mode 100644 index 9bf315294..000000000 --- a/chart/openfaas/templates/basic-auth-plugin-svc.yaml +++ /dev/null @@ -1,25 +0,0 @@ -{{- $functionNs := default .Release.Namespace .Values.functionNamespace }} -{{- if .Values.basic_auth }} ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: {{ template "openfaas.name" . }} - chart: {{ .Chart.Name }}-{{ .Chart.Version }} - component: basic-auth-plugin - heritage: {{ .Release.Service }} - release: {{ .Release.Name }} - name: basic-auth-plugin - namespace: {{ .Release.Namespace | quote }} -spec: - type: ClusterIP - ports: - - port: 8080 - targetPort: http - protocol: TCP - name: http - selector: - app: basic-auth-plugin - -{{- end }} \ No newline at end of file diff --git a/chart/openfaas/values.yaml b/chart/openfaas/values.yaml index a4c45853b..08801b7b6 100644 --- a/chart/openfaas/values.yaml +++ b/chart/openfaas/values.yaml @@ -101,7 +101,7 @@ oidcAuthPlugin: securityContext: true gatewayPro: - image: ghcr.io/openfaasltd/gateway:0.2.12 + image: ghcr.io/openfaasltd/gateway:0.2.13 gateway: image: ghcr.io/openfaas/gateway:0.26.3 @@ -144,14 +144,6 @@ gateway: failureThreshold: 3 successThreshold: 1 -basicAuthPlugin: - image: ghcr.io/openfaas/basic-auth:0.25.5 - replicas: 1 - resources: - requests: - memory: "50Mi" - cpu: "20m" - faasnetesPro: image: ghcr.io/openfaasltd/faas-netes:0.2.5 From 85f10166866b04fe67e087aa5e26f646fee8a74c Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Tue, 28 Feb 2023 16:17:55 +0000 Subject: [PATCH 20/37] Remove basic auth plugin from chart for OpenFaaS Pro The plugin is no longer required because the logic has been brought in-process for both the OpenFaaS CE and Pro gateway. If you have the basic-auth-plugin deployment and service left over in your cluster, you can safely delete them after updating your gateway CE / Pro version to the latest. Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- chart/openfaas/Chart.yaml | 2 +- docs/cron-connector-0.6.4.tgz | Bin 2948 -> 2948 bytes docs/index.yaml | 728 ++++++++++++++++-------------- docs/kafka-connector-0.7.3.tgz | Bin 6484 -> 6484 bytes docs/mqtt-connector-0.4.7.tgz | Bin 2898 -> 2899 bytes docs/nats-connector-0.3.2.tgz | Bin 3069 -> 3069 bytes docs/openfaas-12.0.0.tgz | Bin 0 -> 33814 bytes docs/postgres-connector-0.1.0.tgz | Bin 4138 -> 4139 bytes docs/pro-builder-0.4.0.tgz | Bin 11993 -> 11993 bytes docs/queue-worker-0.1.4.tgz | Bin 3146 -> 3146 bytes docs/sns-connector-0.1.2.tgz | Bin 5016 -> 5017 bytes docs/sqs-connector-0.2.3.tgz | Bin 4210 -> 4210 bytes yaml/alertmanager-dep.yml | 2 +- yaml/prometheus-dep.yml | 2 +- 14 files changed, 380 insertions(+), 354 deletions(-) create mode 100644 docs/openfaas-12.0.0.tgz diff --git a/chart/openfaas/Chart.yaml b/chart/openfaas/Chart.yaml index abcaf4d1b..c028eb616 100644 --- a/chart/openfaas/Chart.yaml +++ b/chart/openfaas/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 type: application description: OpenFaaS - Serverless Functions Made Simple name: openfaas -version: 11.1.14 +version: 12.0.0 sources: - https://github.com/openfaas/faas - https://github.com/openfaas/faas-netes diff --git a/docs/cron-connector-0.6.4.tgz b/docs/cron-connector-0.6.4.tgz index 043c33d8a86c72cb0bb5f1d0f9fc6d7fdc4b3fd0..d0b3acf8b600e408b9d0964b885681dcaf28447f 100644 GIT binary patch delta 2688 zcmV-`3V-#47lap(P6APikx&@{(UEE-e_2YE36?bD558U*4u`|h*_r!491gqxhoh6x zgX6Q)$B)lW&dx@|2gBpD_+JH?U&6}-t&{6gsk{8EU>HfdNelY-qlB$XM4kQ$Tga4=Xb7JZ5FDvj{@+Dm8BH*RB#l(SWTS?w`y#a4@|ci>8eGujZ*O0DownQD zSJhe{{yhA7NJ#a0u4D)^$~6*_D;W}iEmLw6ug`iMoDjlgqV2#VcqJ2ve{otQkfGKz zK~2C{RFl|V7ihqw2wWyGlPaU;C(uQnOJy`fQfSE$q=FAx3Ib)95PD@(kB}pHDdzGL zVa}){MfFldsggn#x;8X`BF-ffhPY-sB%h7Af+Cwn- z$qaH%nXm-ju?%5~W`QW+e`A4a$wcBXm6CS^t>8dMDaHjyO%zTG#^aa5pqf)2!s$>G zB4msg$h~ag^EDwxa#S8e2>I-Cr-eyFFseX86xN0gK;g#%wQ;`z zGR&k}hR_?G{mOc-D$0uxddI_I)^qE^S;kDclC1$Jk4ARHx7LLJf6dad{|2+1Q-gZ& z`pvr+7lHX?Za>F9|L<(rwf~Psr>FP!|1QcoN2;w+;#@AASz$sORg`|-6kWB11Pv@@ z0ajWDJ?jeGz0aA-~H4A}U}(O_aL1pH)Mw?bdc)jR?#* zV|j@dfolA`kdW`-f3lcjWVj#D7x4Kr1aHxC6}+Yy>YPRh*VhnZ&gHTL4f?Zhy#n91 zY}Nm9iabZ91C!s@72Ko$C&Sazj{c7xos91F|1Qes&x40BXITgu4a^uvv&`{HX2lYv z7{bHB^)<1*$cs-o6|vJ(dj|qJbH5`OG9YEYKEya<0-ZPIe>YWNd-tHL>*7{k_BXd^1O-Sd4IGoemMf=+ymW*+ns%u}{$JH^flH?zczyOd&N0w4P&DaK40( z1?6nUFb10E4tqfUj-I;fZ|oeF4{PuuT4)3ZEzYlnk`&UHiSJI6ry?XtS%E%%D=f5qt(`OYPF{d!v&YRlXIE+aZ{ z1qyR+&%fUP_nYY;ot-}Jod1tcM)&^zos@R` zm*%-1%#X<>6LAR7>kU9MG&H7$+N--WSLL1m2;L}`FhM!|6?s;+!Q3^{JP)lmUTvv$ zk05~Se`_BokXbGT3bPhhb*IZ|y?cYWP&YPK7^a)uNYGcN4Zz8_qmnlpDhaGlCy zI$XO$G*oyN=yY&Y#2t>lfCYY+Uj-n*8!B2Wd9nvG@)e_w%kLy$Lxxo;m6mPWxxOa>dX*8kh zf3~))Q*1|i$4!iO5A{v}c=r@#w0CT8T6^fW1IHU_b{4RX*lwQLHIHdw(oOUBj4H6V zVVGaAaV864#yQlHgemV zh|5F={#oMsdXxNmTqa`_k&Kx*keq*%e^{Y6m%PaESGx!;lX#d0H&{w#TLGbv#%}~) zmSO&OlUwt1YSPXEAEdM`t?F*MFPXBLYvmoH4WL>3vV*&>z6{pZno{?F;zqx<{cU6dm@r^cWX?zP3QJSrdH8eJB-i+yYIFwl#fJPfAvk~|DdmXnA7CP(m|DkcjJFQ32A#5(04U@$TyU@_8x z@2BJk63lfZV;ua6%tlB5>({xjImf>E&+%y3(f`x4$M^YvcT$d;?7nA8isl8Dkc%>% zq{(+_rK~`qt!>31 zXcM==D-I?BAxB4WuCTB0W5F~t=-;6ojg-z2sH1P0s~KTJ8_K!k+*5ezYg~R1RhKkI zLMD^Rlp!r&Iswl z)02J)9|A|)lb;DH0b7&G2_}Cl^`YU#GDt`iLsLb_7Tz|2b$o1KE%5QjZVG9|+A}F; zEGfLN3o`c^X5C+q;k}=&u*pSo_800CEn=q@`Aq znu!hTbS$^#CLX?buduveBJ` z5?*g2lR6uAGaQGciNImC_Q|=jy!yDD%MSY?Z0_y delta 2688 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 GbN~RN)Me%X delta 6259 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 diff --git a/docs/mqtt-connector-0.4.7.tgz b/docs/mqtt-connector-0.4.7.tgz index dd6570ac8dc068b6d158d72e1ce53312781223d6..5ef5b9589bb8ab53c728417bbf6273cacb2d512f 100644 GIT binary patch delta 2867 zcmV-33(WM=7Sk4xJ%4ZGHgZ4nSIpThZg;PeoW$`i1QfWvWP7*h?ch?D&%0Z$FTftcPE5cblSz@Izve^A=~s8BY31YcCRC}vhLNthz;x#=`SiCji#NtHS}{TfPnj7Ry18ZT?%&&wCk z^ZWh_@}Td(<^OY<2A>6-!x za)q#9dJ4E=Mzmz<*_3jQ$@jPnVN4T+gcPyla+w*Y&8)B{7zDp4!3h~jF+&-GjVnTC0{Xms6p(TV)hmbr|S|Uw{nx!am9l}XZK^NZA zYnJ9I#JRNWU@Rn14vf!*6M#q@j=lE1BcOV z;Serjyuie5Ex5TOS|sRfr$YGYXF|tg#+hE)#oyaS{;x+X{%cILglbg5yZ4u`FMNHi zKYyRczVqM7X}=Z!PX~j+WBh-JaXF=YrfkGwTxpslWwdGT3?DuuNEO0ZB#Bs92!kN= z;zT$?J1t;>8kQmlV^@u_PsooVhlp}mP#sMz=2=M=5;3u-NrebZ+mJa!gDBJ#;9ByvF{{gK`{yUnY%4mdecYg;lW{Fs~K49RD$zvedFt+;taEeKWQu#Xj z+@s(g|3B`XwEcf@dfI>V|A!biH^Fn5vor*S8pbR^z0C02)R-ljVhGQJyE|f_$m{Ej z^4R*XNrOO)?eEBz3`hazL5yR@5js`qFwh1Zj=8#GmSI%&5j(=%buq1&In&WN^Q~|ZZ7t-!9u7PSAn2lHVEEiWc zEn&6-+{@_ZpjtkBWfcg&z5jcy$+@zHqtXcIm8^}~g9Xea<9ZC8ua)<;>a?gizK86z zZND2ku=Z+=%M=N|d9C*K7JJ1(C3J+z&R1;VI$IU0+uQvvDmrirCSx<-#edFUI?x$* z4)dwsJ2pLz-+pZU{<~vTid_54&nyP*`Th@H^ari)|BIv3$NKMsjC%c-W|<1+M`Xr$ z9K!i(1CSIojj5(4#kb+As10=Cy<`){X#)SiBrVopZWn2mh31rAZmG>5Eg$agTv0)! znc&FvT6xv3nz&}k)x+K0oqt!&Y!7+`hbc;?ZMCbOJ6xcgGn+YBpyE>P7R9%JlOw-LXlzdu_YAbchQS3JJIN!BUY6pcqa#9PN%RhQRIwH0Ug%UFlc zsMMYqhfvm)w!o#7(+S4jXu0zxOfgA)H4Q%htsiD`UgnYO_I2syEq{E2<)19l9 zl{Ha=Qk-|nNk>+dr7l-cGgOfbqNZNk4|b+*32Td#^0+RS2b~~SG8i%5DqnPJ zP*hG-9jk3BTjXx?@}T3n`EPG-nt*qAoffTz>Khoi;{6(ZJ6$7hpAV;A7UI_#u((FO z1UsBTy{x~^Br8^Gtm+8A!di`+iVbFyEcGG>;LUJZw_pSHSAS?)-7c*2wTqrBx7C%c zaPGkn`Ml{@rB~Fh9vbTa_JXnD8#UN^eBDIWWTI!Q$*= zQ`}Jv^)lP9LG40o8{K8q+Q!a zYf7{)+P10EhJV{@&o#n3jJjXU_NCr7G23u^#attNh?tGLye4c#zW{+-(Bem$8V;QC z7`cX{ zDN~^GEE7^IP*Y42m?UE4vKq!G-~!1&d76Lrx|(vU($t-R5Fn(cys<*5kHgS z7mPIVS&TGra8mq2{JDxmjKLqMa@z9$A6~yYe}DVhPvbAiV~_uzyco3o|K#-KvH$Bq zMz`wjw5?gy&ActX5ORSCG*JS6YTc;2t@88J9W9ToEcO{8-7dUwZ3eC{id`F zaDTh%I8L2MM zJ^+nliAsTxu)vWL(G0caZFa5o`9i3=#A~#!)|)1;)@3QnGHq#Y;T4BB=f*1}W)hV- zsM>pThjFj1QInrI*XjZiNTd6`0*<5)^F5aU`e{#^M*AN~e$jaa?I#Hts(Dv?$-Gh?D+ z#~4WDy6CdKg{w~IFiusqsjjS delta 2866 zcmV-23(fS?7Sa}wJ%5keHZq_2E9UGLm*gtR`wj#YxZG}f7xePD?jnbxD7>^Zwpml8 zLQ>xNvU|V%KvJ?Eeyy7{MGwmlyB0ZbaYmfsWbcg$5-9{GMylw1N|gy0G~C`Gk?mkaTMB6^=RN$ zK?cp)J5-uU5ySj|q^J|ca^s%Q{kDKNIg0Nny@YWg61$|qNO<+Ht1B=vXNe|LnPCi5 zV{#ow(ap_GD038JN_CjXjIhL#tCkhL2`9`B{ zA(s<5)P^QAOn-+mr|%04b1@+^T-->N>X-zzh$H}1yVFSkOd66=CJbc) zmBYb|G9Clv_~EZDxd8;VirE$9oN3~p+fGBYEL4JyRHdWWuccJLL{f~X^|B8Bym|qH z@HjjpU-bQV{C`e)f%-ECfF1sSaCp4p|Hp@e2mk*PgMVdof-y{{i3*u)cwlQ^#CB&M z5rsKt3Dq$i5YmS}yvUd_XfXjl&@AUjTttXLyQjcCMHcuwsWQqNQKQ0$NgviAeN!Sq zp%HGFnF21E5u;dkKBYn+{~i}Hj49VhNEu767P)oW+zD%gLG+83f{>AtGgL8{B#)!0 zBo{v$JbxRIgfkT8))S`tXW= zU|EqtS}4a3#!>+lz{Fg70f@p;!FW1k!l0T{9>c+jCR8s(@>0y@3`-rL5B?eEjKb^Z zSC>#|CMIB}xQuOo*5ELwN(xzMP_i&cMpUz8Xn&=S!Kebsgc`h|i(#R-556`o`MG6y z_SzGL%NPcr@O^>WxZeO7W>PI;=$#(FVm&vN3=+So&Szbjyv)HZu(BZRjcsYVz}&gG4Run4Ls zPlO|M(-J0VU?B^zb~TuWg#0KANT`4tYLcnLJg>+CmlJoI)QG^03z;*t_^Lk2#e{qX zvtopa;T|Cn@bM#rKcJH-d`&adIZY7m?tdV~oXbV$0|vpEJOq+8W265Mr^s_uIyCvG z9tC&!|KZ@M>;I=GC&v%||0Tx9kI_?@vn&RU2F8q|S>*U_X3dgJF@~qn-5s$|UCOh1EH@qSl@;4ozFWgx*?4KsYH?}P z3T7j~y^L-Ts@20+PJ#H_`@h$QoJ(7HDy@KC%i5aVTfkf~VaCw=S_fb2UWc0JyU$MB z^t-hK8?V;7Oqt-@*XmwxxmP?Crz7NBU$KMhZB(dfZ~wcj=)f)5jLm)*dw+lFL2uaG z&!>Lx*z_=d`?2x+?~hR#3KK3qu^6=D`+s_NeA@Z`pB5|D+CU%PC^lh&a`*@GtXzY+Tcmj&+f#bArPhD6Lb$v0MFpAV zQlKy^4)vjjlaEWTpT;||_%1?E?l3!E+eWz+P zd!|8QBC`xdim6xKMf`^T;cR(;2$_t0@%a8GS*74oG?8o(Zxv@*U0yZSMx5<0V--H9 z$^>#8LseJW0GClgCzuAK#nzWFMV^Iv8h!d(-_PWt$|G0p>(k3ycz<6=D$)Ne1-~jE``ROl-uC@5g(3Zy4aJ0!`a2A zyrUYLMZQ~u#)Z}ci$RlZ7zDoNlBL&8dn!ux06YEvJyCZvx3#ApFHA!ycP+e8l)R&i+pGdiJDSuiMZ{C#NpZ@0juap0W_UO$f zLMr@xIp(hWzmvmm{(pRQcKDG0e~HnDx6~L^zNgE-dAOOP02hLom_SaG8J(aGNguAJ zOoJ}+Tq>hMPmyz&a5?f>4HJ`ZYz9pYn)%&J~W?2Tc8@|I?EY zY$O0F9Dk-23361xnZS^Q7nj3JBNdW9oXaee0^XfpLdujT;e?sU{q^FLaP%J)xxdxK zbQ0M=)uWz^s3tU`$*joT-G?SmLw%Ezr{Rds$kWhdIeGeD(ua3cF@Esvcn_6Z^VKD_j82EH$fTwh<0sGgDu zGmvoW{A=jB_DNSniU>(kXgrrv_Tj23Lr~%F`S>Cx#D2}{0!1K}^(hE~WwEE8>^KA5 zE`PfY96<=i5Lk&nOG`tgd8@IZQFV9K*k$u*x1FJ>%Gk@)w-HT@*`#bkBcyut-DKB| z=FaPokXv|570u9~g3h>wi@FiGySV4Lg%`fj?|#ta7J>}}HZScx_M_#*x^^Xv>vbAF z2hGHUW7*j_mI`z+T3Ya%s<#Hp>WmZ#I)5mncKbM_iq>_jb#e{6wy~}~$yGQj)z$f1 zplPa5Ymf?VaHM52L*sbcUF&?l6sjrl3a#tarpfD7S*o&3SDIURF5u;b^$LZ#LTwMK z?%v#E+-qwzWGQH>-Tm+NE+*pc)?kU2-ZW%ht{(+r&CJ(SP@l zs1~c6=G9`otP;Nwnj1t>rI7YGmeCyKxY3J0*J0U*zeZdu)?h!engy>~q-D*_nyB0{ z77~RiyKHaay4Tx}Q(bLp>h9vDZ+qR^@@kcHCF;GH)(LFQ^KW*pqmEOwEKUImI^vkR z&8Ld}7%sEz4%RLFu*}1&o?G|z@+!KxBvhE diff --git a/docs/nats-connector-0.3.2.tgz b/docs/nats-connector-0.3.2.tgz index 30193a72fb802594b5b4dfa2c947460fa9c41e04..13167ac0076fe0c4132b2950e6a16a0dafe50b5d 100644 GIT binary patch delta 2923 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 delta 2923 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 V_w9eK{W|~v|Nkae1l9mN008(qu;Bmz diff --git a/docs/openfaas-12.0.0.tgz b/docs/openfaas-12.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..b6ebc6e93b7f22f235eb4155fe4450e1cba88c90 GIT binary patch literal 33814 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 RzX1RM|NowVs>c9m0{|NvCGh|N literal 0 HcmV?d00001 diff --git a/docs/postgres-connector-0.1.0.tgz b/docs/postgres-connector-0.1.0.tgz index 2b1c80dd17cd93d9eff3e5ec7f36889899fa372c..2cf6d07a44425d33ddd7687dd2601356f24fb392 100644 GIT binary patch delta 3880 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 delta 3879 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 diff --git a/docs/pro-builder-0.4.0.tgz b/docs/pro-builder-0.4.0.tgz index 72fb85b2d9d1d6be74b24f0ce7c7784ca009a3aa..dc8ab9e9239d24aa0d68925e959ff1add82b97a5 100644 GIT binary patch delta 11348 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 HK|%cwvS@P( delta 11331 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 diff --git a/docs/queue-worker-0.1.4.tgz b/docs/queue-worker-0.1.4.tgz index 1afd01c55c69590094abb2e6aeb233e209bed0f7..b3814a11e14e6f94f88f1e2646d40f8fe94245b8 100644 GIT binary patch delta 26 icmX>laY|ysS~e@GJ~w~1jhp+qIVLDvsAjNYU;qGxjR?R1 delta 26 icmX>laY|ysTDB?^slLU_H*W6d=IC>l|HNR$zyJW1xe3Yu diff --git a/docs/sns-connector-0.1.2.tgz b/docs/sns-connector-0.1.2.tgz index f3538c8479806914020802dbe0cc485e1ab7581f..34c87ec74982412e5b0b3aaa97211a8aa1ea3849 100644 GIT binary patch delta 4762 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 oKkGH`eA6oI{*Lx delta 4761 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.tpmC{R~m^x9?4~{E#~$Kwn~5Z@F!IoWo7b# zE0L~?w9T9Te7G0ToCOW6fsnI7%%pV(+#Oz7H2t-maCwSlbE@%2T)H6Y8BTo&dLx+t zN~H7Z;@VYE4|nU(b-60dSay_Br9yD)WSD2y%CCdp3TU3EOXyEmINn{_as*>Ggp8}2 zt9G&I$~wP%^ZMZUknh@@roBN0_qS|7f4tSjZO&VFd&=o@MXfGkpMAPHN& zZ6#eP80OqrNlD-S8N#4WprJZ(RgS0j1X{f?n*g@69LgwY`}%)m{R-60MszwMe_mu0 z!$BLssRZ@F3Z@aU<4W?}4NrKT6gT9_;c4xEjT(N7#Qym7YUXe-=m_?}1KqsHxlnzi zO80le-M#(CPo6$|{y)Rry--Y@*S@_5`qN5@t6?iP`Q4#Pzc&8mLF}p;DsR{&W=qV4 z^{QMhtaG?p%RYZDiyz<@v^FElkjKqBDqGUzYzWP;)>5FV^vsn8F>M?H#^bSdV-rlX zl7cv{eb$v4`*Pc4qVZ9Qf$v}BGimm}tX15=E_uOxS{_mRT%CcB){=@pKbRy>H z6NKDZ%6Tt&Y>cWsWz=)g0`kIcu-3KVxbVSR6|~mJILLow75GBU z4C?AOHUW?;=&xBS$}whn3u9yjdRxH;JyS;4#J@VM6-Uk6|a_J(uZ>06(iYAbuU z^nD`1>nwlr7_OQ%Q{~y)yHVE|_|GPI%}y|0CD`o?<96Tkk~Ha3Nxnq8f^qegi?xh) z1h>=D#=h@&-S0pc`87wf!*RFD&-P{{pNu^?)oBN zo5f`awh6`?rNR>2N&2b?eof!AtjJoQ)$p)2Nk)GsAGzSy1cAc$qWnOI#u(z#`zJl@oP+dc@CAiKP9k==#8TO{ks@mzX z&qLkHs!wcJFuv~d6=O$mD@}A<_kC07ywKhUa#^ZkYGuI1#~PCAKk1@AZz{&f%3`w! zuOWZuf|xa3g24 zYd>2TZ?-j8X@Z@d?yO25^q+^Zw%>jFrHX%7)4Oy(Ej4bep#2q^af9GG&$4aS-1mE2 z0;ZMVKfc{eh8tO&Es;1cKR)FXLjA|MVC1gMF)okiA&h@lW=|K=3YZe_B$hl9Hc3fL2k%X%CSx%QvUWaN|ADmp~zi$J*lF(jng6b nXT9c~PkS(Ps{6AqVDH;~yKndHPip@c009608nvZS09pV5NzP#w diff --git a/docs/sqs-connector-0.2.3.tgz b/docs/sqs-connector-0.2.3.tgz index bf921ecf771099d6e6c49d1661fd6c9d9e51b0af..14ded7e8dadadb5b2c49036626a4628066823b43 100644 GIT binary patch delta 3466 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 delta 3466 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 diff --git a/yaml/alertmanager-dep.yml b/yaml/alertmanager-dep.yml index d495a80d7..e9f7358ff 100644 --- a/yaml/alertmanager-dep.yml +++ b/yaml/alertmanager-dep.yml @@ -18,7 +18,7 @@ spec: app: alertmanager annotations: sidecar.istio.io/inject: "true" - checksum/alertmanager-config: "6cfe6a6bbcdc7a121f6cfe951c63ac901f8e9e3296f01769b13c51c6a2a1db63" + checksum/alertmanager-config: "88e522b814b351d3cf180fb11eb176f8b3c31a29e2ce6083b3fdf0928c0d59a1" spec: containers: - name: alertmanager diff --git a/yaml/prometheus-dep.yml b/yaml/prometheus-dep.yml index fa0815718..a8605abe9 100644 --- a/yaml/prometheus-dep.yml +++ b/yaml/prometheus-dep.yml @@ -18,7 +18,7 @@ spec: app: prometheus annotations: sidecar.istio.io/inject: "true" - checksum/prometheus-config: "11e2ebfbeecdc5864e7a0e867fdee8fb3ea93597231a48e030a4b713ae1ea554" + checksum/prometheus-config: "9386cd373c4ef968602a87e23ba2278a7643a387931796e5c8ce4ba17b2b56a1" spec: serviceAccountName: openfaas-prometheus containers: From cddb81a6c58bcfe89fd01b294e574fb6a6572d31 Mon Sep 17 00:00:00 2001 From: "Han Verstraete (OpenFaaS Ltd)" Date: Tue, 28 Feb 2023 15:59:50 +0100 Subject: [PATCH 21/37] Always mount license in autoscaler The OpenFaaS license was not mounted in the the autoscaler container when basic auth is disabled in the chart. This prevented the autoscaler from starting. Signed-off-by: Han Verstraete (OpenFaaS Ltd) --- chart/openfaas/templates/autoscaler-dep.yaml | 6 ++++-- chart/openfaas/values.yaml | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/chart/openfaas/templates/autoscaler-dep.yaml b/chart/openfaas/templates/autoscaler-dep.yaml index 79d1201ba..68bbc07bc 100644 --- a/chart/openfaas/templates/autoscaler-dep.yaml +++ b/chart/openfaas/templates/autoscaler-dep.yaml @@ -51,15 +51,17 @@ spec: value: "prometheus.{{ .Release.Namespace }}" - name: prometheus_port value: "9090" - {{- if .Values.basic_auth }} - name: secret_mount_path value: "/var/secrets/autoscaler" + {{- if .Values.basic_auth }} - name: basic_auth - value: "{{ .Values.basic_auth }}" + value: "true" + {{- end }} volumeMounts: - name: license readOnly: true mountPath: "/var/secrets/license" + {{- if .Values.basic_auth }} - name: auth readOnly: true mountPath: "/var/secrets/autoscaler" diff --git a/chart/openfaas/values.yaml b/chart/openfaas/values.yaml index 08801b7b6..7413b9201 100644 --- a/chart/openfaas/values.yaml +++ b/chart/openfaas/values.yaml @@ -32,7 +32,7 @@ openfaasImagePullPolicy: "Always" ## Advanced auto-scaler for scaling functions on RPS, CPU and in-flight requests ## Includes: scale to zero autoscaler: - image: ghcr.io/openfaasltd/autoscaler:0.2.7 + image: ghcr.io/openfaasltd/autoscaler:0.2.9 replicas: 1 enabled: true resources: From 28b1e40124726206c305f77b08086d0f4a608ccd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Feb 2023 15:57:22 +0000 Subject: [PATCH 22/37] Bump actions/checkout from 2 to 3 Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/helm.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/helm.yaml b/.github/workflows/helm.yaml index 10e3fb0d4..8fe14f3e6 100644 --- a/.github/workflows/helm.yaml +++ b/.github/workflows/helm.yaml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - uses: azure/setup-helm@v1 - name: Helm Lint run: ./contrib/lint_chart.sh @@ -30,7 +30,7 @@ jobs: - lint-chart steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - uses: lra/setup-kubeval@v1 with: version: v0.16.1 From acbffee0c439ece8b853f252b4d6f1cadac54a2d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Feb 2023 15:57:19 +0000 Subject: [PATCH 23/37] Bump actions/setup-go from 3.1.0 to 3.5.0 Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3.1.0 to 3.5.0. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/v3.1.0...v3.5.0) --- updated-dependencies: - dependency-name: actions/setup-go dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/publish.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 68c248f2a..4a7547aa0 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -19,7 +19,7 @@ jobs: steps: - uses: actions/checkout@master - name: Install Go - uses: actions/setup-go@v3.1.0 + uses: actions/setup-go@v3.5.0 with: go-version: 1.19.x - name: Set up QEMU From 52948e73e8e2f911d98908e8abdcebb09734df26 Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Mon, 13 Mar 2023 11:42:51 +0000 Subject: [PATCH 24/37] Additional validation for OpenFaaS CE scaling A few users who haven't read the docs carefully enough were trying to use OpenFaaS Pro scaling labels with the CE edition. This improves the developer experience by showing them the mistake, so they can fix it instead of raising an issue and creating noise. The docs cover both scaling approaches clearly along with their labels. Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- pkg/handlers/deploy.go | 6 +- pkg/handlers/validate.go | 50 +++++++++++++++- pkg/handlers/validate_test.go | 108 ++++++++++++++++++++++++++++++++++ 3 files changed, 160 insertions(+), 4 deletions(-) create mode 100644 pkg/handlers/validate_test.go diff --git a/pkg/handlers/deploy.go b/pkg/handlers/deploy.go index 21df6d13c..1c868951a 100644 --- a/pkg/handlers/deploy.go +++ b/pkg/handlers/deploy.go @@ -150,10 +150,10 @@ func makeDeploymentSpec(request types.FunctionDeployment, existingSecrets map[st nodeSelector := createSelector(request.Constraints) - resources, resourceErr := createResources(request) + resources, err := createResources(request) - if resourceErr != nil { - return nil, resourceErr + if err != nil { + return nil, err } var imagePullPolicy apiv1.PullPolicy diff --git a/pkg/handlers/validate.go b/pkg/handlers/validate.go index 35719f094..ef45a80e4 100644 --- a/pkg/handlers/validate.go +++ b/pkg/handlers/validate.go @@ -7,12 +7,14 @@ package handlers import ( "fmt" "regexp" + "strconv" types "github.com/openfaas/faas-provider/types" ) // Regex for RFC-1123 validation: -// k8s.io/kubernetes/pkg/util/validation/validation.go +// +// k8s.io/kubernetes/pkg/util/validation/validation.go var validDNS = regexp.MustCompile(`^[a-z0-9]([-a-z0-9]*[a-z0-9])?$`) // validates that the service name is valid for Kubernetes @@ -41,5 +43,51 @@ func ValidateDeployRequest(request *types.FunctionDeployment) error { return fmt.Errorf("image: is required") } + if err := validateScalingLabels(request); err != nil { + return err + } + + return nil +} + +func validateScalingLabels(request *types.FunctionDeployment) error { + if request.Labels == nil { + return nil + } + + labels := *request.Labels + if v, ok := labels["com.openfaas.scale.zero"]; ok { + if v == "true" { + return fmt.Errorf("com.openfaas.scale.zero not available for Community Edition") + } + } + if _, ok := labels["com.openfaas.scale.zero-duration"]; ok { + return fmt.Errorf("com.openfaas.scale.zero-duration not available for Community Edition") + } + + if _, ok := labels["com.openfaas.scale.target"]; ok { + return fmt.Errorf("com.openfaas.scale.target not available for Community Edition") + } + + if _, ok := labels["com.openfaas.scale.type"]; ok { + return fmt.Errorf("com.openfaas.scale.type not available for Community Edition") + } + + if v, ok := labels["com.openfaas.scale.max"]; ok { + if vv, err := strconv.Atoi(v); err == nil { + if vv > MaxReplicas { + return fmt.Errorf("com.openfaas.scale.max is set too high for Community Edition") + } + } + } + + if v, ok := labels["com.openfaas.scale.min"]; ok { + if vv, err := strconv.Atoi(v); err == nil { + if vv > MaxReplicas { + return fmt.Errorf("com.openfaas.scale.min is set too high for Community Edition") + } + } + } + return nil } diff --git a/pkg/handlers/validate_test.go b/pkg/handlers/validate_test.go new file mode 100644 index 000000000..cb1bfe7a7 --- /dev/null +++ b/pkg/handlers/validate_test.go @@ -0,0 +1,108 @@ +package handlers + +import ( + "fmt" + "testing" + + "github.com/openfaas/faas-provider/types" +) + +func Test_validateScalingLabels(t *testing.T) { + + testCases := []struct { + Name string + Labels map[string]string + Err error + }{ + { + Name: "empty labels", + Labels: map[string]string{}, + Err: nil, + }, + { + Name: "com.openfaas.scale.zero", + Labels: map[string]string{ + "com.openfaas.scale.zero": "true", + }, + Err: fmt.Errorf("com.openfaas.scale.zero not available for Community Edition"), + }, + { + Name: "com.openfaas.scale.zero-duration", + Labels: map[string]string{ + "com.openfaas.scale.zero-duration": "15m", + }, + Err: fmt.Errorf("com.openfaas.scale.zero-duration not available for Community Edition"), + }, + { + Name: "com.openfaas.scale.target", + Labels: map[string]string{ + "com.openfaas.scale.target": "10", + }, + Err: fmt.Errorf("com.openfaas.scale.target not available for Community Edition"), + }, + { + Name: "com.openfaas.scale.type", + Labels: map[string]string{ + "com.openfaas.scale.type": "cpu", + }, + Err: fmt.Errorf("com.openfaas.scale.type not available for Community Edition"), + }, + { + Name: "com.openfaas.scale.min allowed", + Labels: map[string]string{ + "com.openfaas.scale.min": "1", + }, + }, + { + Name: "com.openfaas.scale.min allowed within range", + Labels: map[string]string{ + "com.openfaas.scale.min": "5", + }, + }, + { + Name: "com.openfaas.scale.max allowed within range", + Labels: map[string]string{ + "com.openfaas.scale.max": "5", + }, + }, + { + Name: "com.openfaas.scale.min allowed within range", + Labels: map[string]string{ + "com.openfaas.scale.min": "5", + }, + }, + { + Name: "com.openfaas.scale.max fails outside of range", + Labels: map[string]string{ + "com.openfaas.scale.max": "6", + }, + Err: fmt.Errorf("com.openfaas.scale.max is set too high for Community Edition"), + }, + { + Name: "com.openfaas.scale.min fails outside of range", + Labels: map[string]string{ + "com.openfaas.scale.min": "6", + }, + Err: fmt.Errorf("com.openfaas.scale.min is set too high for Community Edition"), + }, + } + + for _, tc := range testCases { + t.Run(tc.Name, func(t *testing.T) { + gotErr := validateScalingLabels(&types.FunctionDeployment{Labels: &tc.Labels}) + got := fmt.Errorf("") + if gotErr != nil { + got = gotErr + } + want := fmt.Errorf("") + if tc.Err != nil { + want = tc.Err + } + + if got.Error() != want.Error() { + t.Errorf("got: %v, want: %v", got, want) + } + }) + } + +} From 82830800173be82e71d68863dacffbbc0cf630e3 Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Mon, 13 Mar 2023 12:22:12 +0000 Subject: [PATCH 25/37] Update charts for queue-worker, function-builder and faas-netes CE Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- chart/openfaas/Chart.yaml | 2 +- chart/openfaas/values.yaml | 8 +- chart/pro-builder/Chart.yaml | 2 +- chart/pro-builder/values.yaml | 4 +- chart/queue-worker/Chart.yaml | 2 +- chart/queue-worker/values.yaml | 2 +- docs/cron-connector-0.6.4.tgz | Bin 2948 -> 2947 bytes docs/index.yaml | 765 ++++++++++++++++-------------- docs/kafka-connector-0.7.3.tgz | Bin 6484 -> 6484 bytes docs/mqtt-connector-0.4.7.tgz | Bin 2899 -> 2899 bytes docs/nats-connector-0.3.2.tgz | Bin 3069 -> 3069 bytes docs/openfaas-12.0.1.tgz | Bin 0 -> 33801 bytes docs/postgres-connector-0.1.0.tgz | Bin 4139 -> 4141 bytes docs/pro-builder-0.4.1.tgz | Bin 0 -> 11995 bytes docs/queue-worker-0.1.5.tgz | Bin 0 -> 3146 bytes docs/sns-connector-0.1.2.tgz | Bin 5017 -> 5019 bytes docs/sqs-connector-0.2.3.tgz | Bin 4210 -> 4207 bytes yaml/alertmanager-dep.yml | 2 +- yaml/gateway-dep.yml | 2 +- yaml/prometheus-dep.yml | 2 +- 20 files changed, 428 insertions(+), 363 deletions(-) create mode 100644 docs/openfaas-12.0.1.tgz create mode 100644 docs/pro-builder-0.4.1.tgz create mode 100644 docs/queue-worker-0.1.5.tgz diff --git a/chart/openfaas/Chart.yaml b/chart/openfaas/Chart.yaml index c028eb616..05e3523a0 100644 --- a/chart/openfaas/Chart.yaml +++ b/chart/openfaas/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 type: application description: OpenFaaS - Serverless Functions Made Simple name: openfaas -version: 12.0.0 +version: 12.0.1 sources: - https://github.com/openfaas/faas - https://github.com/openfaas/faas-netes diff --git a/chart/openfaas/values.yaml b/chart/openfaas/values.yaml index 7413b9201..4e7785581 100644 --- a/chart/openfaas/values.yaml +++ b/chart/openfaas/values.yaml @@ -151,7 +151,7 @@ operatorPro: image: ghcr.io/openfaasltd/faas-netes:0.2.5 faasnetes: - image: ghcr.io/openfaas/faas-netes:0.16.4 + image: ghcr.io/openfaas/faas-netes:0.16.5 imagePullPolicy: "Always" # Image pull policy for deployed functions httpProbe: true # Setting to true will use HTTP for readiness and liveness probe on function pods setNonRootUser: false # It's recommended to set this to "true", but test your images before committing to it @@ -169,7 +169,7 @@ faasnetes: cpu: "50m" operator: - image: ghcr.io/openfaas/faas-netes:0.16.4 + image: ghcr.io/openfaas/faas-netes:0.16.5 create: false resources: requests: @@ -181,7 +181,7 @@ operator: # # Enable automatically when nats.queueMode is set to "jetstream" jetstreamQueueWorker: - image: ghcr.io/openfaasltd/jetstream-queue-worker:0.3.5 + image: ghcr.io/openfaasltd/jetstream-queue-worker:0.3.6 durableName: "faas-workers" logs: debug: false @@ -263,7 +263,7 @@ nats: host: "" port: "" # The version of NATS Core used with OpenFaaS Pro and JetStream - image: nats:2.9.14 + image: nats:2.9.15 enableMonitoring: false metrics: # Should stay off by default because the exporter is not multi-arch (yet) diff --git a/chart/pro-builder/Chart.yaml b/chart/pro-builder/Chart.yaml index 4d6e9f4c5..7a3de5f4c 100644 --- a/chart/pro-builder/Chart.yaml +++ b/chart/pro-builder/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 description: Build OpenFaaS functions via a REST API name: pro-builder -version: 0.4.0 +version: 0.4.1 sources: - https://github.com/openfaas/faas-netes home: https://www.openfaas.com diff --git a/chart/pro-builder/values.yaml b/chart/pro-builder/values.yaml index 7937d77ed..4d74d9f30 100644 --- a/chart/pro-builder/values.yaml +++ b/chart/pro-builder/values.yaml @@ -31,7 +31,7 @@ buildkit: # nodepool for the function builder pods, which is recycled often # through the use of spot instances or preemptive VMs. # - # image: moby/buildkit:v0.11.3 + # image: moby/buildkit:v0.11.4 # rootless: false # securityContext: # runAsUser: 0 @@ -41,7 +41,7 @@ buildkit: # For a rootless configuration, preferred, if the configuration # and Kernel version of your Kubernetes nodes supports it # - image: moby/buildkit:v0.11.3-rootless + image: moby/buildkit:v0.11.4-rootless rootless: true securityContext: # Needs Kubernetes >= 1.19 diff --git a/chart/queue-worker/Chart.yaml b/chart/queue-worker/Chart.yaml index dc1e3e0c7..1ec8a7256 100644 --- a/chart/queue-worker/Chart.yaml +++ b/chart/queue-worker/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: queue-worker description: JetStream for OpenFaaS queue-worker type: application -version: 0.1.4 +version: 0.1.5 keywords: - openfaas - jetstream diff --git a/chart/queue-worker/values.yaml b/chart/queue-worker/values.yaml index dfe8528d5..891825b03 100644 --- a/chart/queue-worker/values.yaml +++ b/chart/queue-worker/values.yaml @@ -1,4 +1,4 @@ -image: ghcr.io/openfaasltd/jetstream-queue-worker:0.3.5 +image: ghcr.io/openfaasltd/jetstream-queue-worker:0.3.6 replicas: 1 diff --git a/docs/cron-connector-0.6.4.tgz b/docs/cron-connector-0.6.4.tgz index d0b3acf8b600e408b9d0964b885681dcaf28447f..51074242ab6859287d103b6d2a92409e97f59c24 100644 GIT binary patch delta 2899 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 delta 2900 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 diff --git a/docs/index.yaml b/docs/index.yaml index 92d487c89..e18eaf7b9 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -2,9 +2,9 @@ apiVersion: v1 entries: cron-connector: - apiVersion: v1 - created: "2023-02-28T16:17:52.674226712Z" + created: "2023-03-13T12:22:06.987934689Z" description: Trigger OpenFaaS Functions with cron - digest: 89fd7a0c3755b2337bf95855804f7f613f6fe18f2608385bb55d5b7b20340ebc + digest: b3c4fcc434d35daf19552dcaf8aec941d273c64bb7cf369861b47bf528c44cf5 home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -23,7 +23,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.6.4.tgz version: 0.6.4 - apiVersion: v1 - created: "2023-02-28T16:17:52.67391112Z" + created: "2023-03-13T12:22:06.98764064Z" description: Trigger OpenFaaS Functions with cron digest: 468181706402bd3bd6db843fd1e1a206c189aa5406d8434cc2b72197b435a86e home: https://www.openfaas.com @@ -44,7 +44,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.6.3.tgz version: 0.6.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.673596599Z" + created: "2023-03-13T12:22:06.98734097Z" description: Trigger OpenFaaS Functions with cron digest: d44542479acd73de32f6e0d46b7c31aa0fb5818f8cb684dbc6250539528a68a5 home: https://www.openfaas.com @@ -65,7 +65,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.6.2.tgz version: 0.6.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.673307788Z" + created: "2023-03-13T12:22:06.987037899Z" description: Trigger OpenFaaS Functions with cron digest: 95005f07ed3e9d5809f4633df1eb62b9f26be0061471b4274df695dcb6880e90 home: https://www.openfaas.com @@ -86,7 +86,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.6.1.tgz version: 0.6.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.673023148Z" + created: "2023-03-13T12:22:06.986770851Z" description: Trigger OpenFaaS Functions with cron digest: 055ae8324200f1fbcbfd197143b7202b9dc28ef26c0ed25c1820a290e7d36527 home: https://www.openfaas.com @@ -107,7 +107,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.6.0.tgz version: 0.6.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.672721897Z" + created: "2023-03-13T12:22:06.986531073Z" description: Trigger OpenFaaS Functions with cron digest: 1215c535abc59f7b64b9985e43a5a927eca2f91437bb175e15d9de93333ffbd2 home: https://www.openfaas.com @@ -128,7 +128,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.5.3.tgz version: 0.5.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.672478028Z" + created: "2023-03-13T12:22:06.986302085Z" description: Trigger OpenFaaS Functions with cron digest: 6b6bbbf29f4b29587d45fec7b4ae7edc4b35aa7db97e2dfdb46eaef02fc29eb2 home: https://www.openfaas.com @@ -149,7 +149,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.5.2.tgz version: 0.5.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.672219619Z" + created: "2023-03-13T12:22:06.986048046Z" description: Trigger OpenFaaS Functions with cron digest: 4519834f17b3d735b027cc4852e861e01f6258910bf1d0706d723710d3e0b70b home: https://www.openfaas.com @@ -170,7 +170,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.5.1.tgz version: 0.5.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.671942299Z" + created: "2023-03-13T12:22:06.985768767Z" description: Trigger OpenFaaS Functions with cron digest: e049068f4ba06335414b52c66b456b8777831938df255fbd619b171fa4dd951f home: https://www.openfaas.com @@ -191,7 +191,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.5.0.tgz version: 0.5.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.671662518Z" + created: "2023-03-13T12:22:06.984889838Z" description: Trigger OpenFaaS Functions with cron digest: 36590b38cccce33bfdb4dd6554c237a8cb97a39053a08fc220363996e829f59f home: https://www.openfaas.com @@ -212,7 +212,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.3.2.tgz version: 0.3.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.671374558Z" + created: "2023-03-13T12:22:06.984618718Z" description: Trigger OpenFaaS Functions with cron digest: 16abbafe3c5d9f0b619c9c4f8e53019f88cdbc09e295925fef7002f2ec1c9b32 home: https://www.openfaas.com @@ -234,9 +234,9 @@ entries: version: 0.3.1 kafka-connector: - apiVersion: v1 - created: "2023-02-28T16:17:52.684146072Z" + created: "2023-03-13T12:22:06.997988567Z" description: Connect OpenFaaS functions to Kafka topics - digest: 132c8ace4394fbe4d705a3dd83f4a9132787f365ee00b6b2bae0a3a6e505ca92 + digest: 175adbedd79c0c73eeee2eea22869b82a2f9c02df1e569fb119df28f62d6abfd home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -254,7 +254,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.7.3.tgz version: 0.7.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.683672005Z" + created: "2023-03-13T12:22:06.99750452Z" description: Connect OpenFaaS functions to Kafka topics digest: af26715a204a92bc28aa6e4a4ce198f55ca2f6b5cc2c9cb7ee26e5c223459fa5 home: https://www.openfaas.com @@ -274,7 +274,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.7.2.tgz version: 0.7.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.683190877Z" + created: "2023-03-13T12:22:06.997034215Z" description: Connect OpenFaaS functions to Kafka topics digest: 7bd58059000fe9ad837c4b9b24653bd7bf1d1887b553c572053bc35c78af7059 home: https://www.openfaas.com @@ -294,7 +294,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.7.1.tgz version: 0.7.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.68272387Z" + created: "2023-03-13T12:22:06.996360422Z" description: Connect OpenFaaS functions to Kafka topics digest: 2f63695d635e944496ed17f906b43b33b4d0bed5df4f47343485f702b02612a8 home: https://www.openfaas.com @@ -314,7 +314,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.7.0.tgz version: 0.7.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.682300595Z" + created: "2023-03-13T12:22:06.995877506Z" description: Connect OpenFaaS functions to Kafka topics digest: 7c1cf7e169d22dec04d7c1458fc663e976ce0b241e16b8269511ff45cb052d0b home: https://www.openfaas.com @@ -334,7 +334,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.9.tgz version: 0.6.9 - apiVersion: v1 - created: "2023-02-28T16:17:52.681853929Z" + created: "2023-03-13T12:22:06.995492933Z" description: Connect OpenFaaS functions to Kafka topics digest: d1897dacf5c5337cf6b6dc04409298176514f9726f01174142d09ec838b23a5b home: https://www.openfaas.com @@ -354,7 +354,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.8.tgz version: 0.6.8 - apiVersion: v1 - created: "2023-02-28T16:17:52.681438524Z" + created: "2023-03-13T12:22:06.99511357Z" description: Connect OpenFaaS functions to Kafka topics digest: d3c45957183c9155593a4b4c9e5ddd7cedbd9baf84481275fdf46abf07668101 home: https://www.openfaas.com @@ -374,7 +374,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.7.tgz version: 0.6.7 - apiVersion: v1 - created: "2023-02-28T16:17:52.681005828Z" + created: "2023-03-13T12:22:06.99421571Z" description: Connect OpenFaaS functions to Kafka topics digest: 817b0286fe4c93d3192be68a9073fb27e912884bc5afcbf45dce70ac2194f9dc home: https://www.openfaas.com @@ -394,7 +394,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.6.tgz version: 0.6.6 - apiVersion: v1 - created: "2023-02-28T16:17:52.680632864Z" + created: "2023-03-13T12:22:06.993349601Z" description: Connect OpenFaaS functions to Kafka topics digest: 688955bed94ac25cde9a3b2f5d5e696637e1f0d85efe156d646848cfec70bda4 home: https://www.openfaas.com @@ -414,7 +414,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.5.tgz version: 0.6.5 - apiVersion: v1 - created: "2023-02-28T16:17:52.6802547Z" + created: "2023-03-13T12:22:06.992934267Z" description: Connect OpenFaaS functions to Kafka topics digest: 518a08a8692fb1552c37b590126d6ab8b8ca0fa87e4b37dd6df2400d0a517635 home: https://www.openfaas.com @@ -434,7 +434,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.3.tgz version: 0.6.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.679812124Z" + created: "2023-03-13T12:22:06.992526423Z" description: Connect OpenFaaS functions to Kafka topics digest: 0c9cfd59867c1c7280cac6820d918a1a89057fdaa0eeb94bb2ddd31d5b0255a0 home: https://www.openfaas.com @@ -454,7 +454,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.2.tgz version: 0.6.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.679444261Z" + created: "2023-03-13T12:22:06.99213632Z" description: Connect OpenFaaS functions to Kafka topics digest: cfe5b1af2fec3b4de339432b697170f9e79da37ce11f1c570256f0e907ba501b home: https://www.openfaas.com @@ -474,7 +474,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.1.tgz version: 0.6.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.679048457Z" + created: "2023-03-13T12:22:06.991732567Z" description: Connect OpenFaaS functions to Kafka topics digest: f76fd6b009427b0096b266e8165fd73d5da105436a166a440e4c92f84c33f08c home: https://www.openfaas.com @@ -494,7 +494,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.5.1.tgz version: 0.5.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.678712944Z" + created: "2023-03-13T12:22:06.991412096Z" description: Connect OpenFaaS functions to Kafka topics digest: 833e72c75b76b3ff22aab5bb7c99c9403fe968aad8fde32b86ea1b8cba075366 home: https://www.openfaas.com @@ -513,7 +513,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.5.0.tgz version: 0.5.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.678409583Z" + created: "2023-03-13T12:22:06.991083165Z" description: Connect OpenFaaS functions to Kafka topics digest: d7615f9848baddf4983811e2dbe8a0119e916abd4724e1ed123c15ab33953db0 home: https://www.openfaas.com @@ -534,7 +534,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.4.3.tgz version: 0.4.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.678112563Z" + created: "2023-03-13T12:22:06.990758314Z" description: Connect OpenFaaS functions to Kafka topics digest: 0dbe5b6d3f8037d394de633648d0344f4cbdb767718a61cd8f5577f95282fddf home: https://www.openfaas.com @@ -555,7 +555,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.4.2.tgz version: 0.4.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.677841243Z" + created: "2023-03-13T12:22:06.990421582Z" description: Connect OpenFaaS functions to Kafka topics digest: 5d75cf2523d96ce7b1ddf5c57669ac75eb4efda1513c5ca3b283441fe75d6f80 home: https://www.openfaas.com @@ -576,7 +576,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.4.1.tgz version: 0.4.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.677402017Z" + created: "2023-03-13T12:22:06.990074201Z" description: Connect OpenFaaS functions to Kafka topics digest: ea275aecc3d5e3444f9df0d9cb697cb62a7e97a9eb524e983d1e91f654549a1f home: https://www.openfaas.com @@ -597,7 +597,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.4.0.tgz version: 0.4.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.676256675Z" + created: "2023-03-13T12:22:06.98974862Z" description: Connect OpenFaaS functions to Kafka topics digest: 0d323f57fa97ae54fb5061cc97cab1a424966e1bf661b53d6e351cbb7c1e770c home: https://www.openfaas.com @@ -618,7 +618,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.3.0.tgz version: 0.3.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.67583973Z" + created: "2023-03-13T12:22:06.98943781Z" description: Connect OpenFaaS functions to Kafka topics digest: bfea71c611212db704e971164dbaad4a863852b040d68bbfb3f425c17294911d home: https://www.openfaas.com @@ -639,7 +639,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.2.3.tgz version: 0.2.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.675500638Z" + created: "2023-03-13T12:22:06.989124869Z" description: Connect OpenFaaS functions to Kafka topics digest: 88c657fa02ac7a0dfc1bfd2b01a8ecae2b13582fe4e6e68a4fc0121f3a3f33d0 home: https://www.openfaas.com @@ -660,7 +660,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.2.2.tgz version: 0.2.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.675174096Z" + created: "2023-03-13T12:22:06.988828179Z" description: Connect OpenFaaS functions to Kafka topics digest: 369b09a454db9b1f257e0552ee0f4d6648e1548d47a509cf699da371ae556412 home: https://www.openfaas.com @@ -681,7 +681,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.1.2.tgz version: 0.1.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.674850554Z" + created: "2023-03-13T12:22:06.988535499Z" description: Connect OpenFaaS functions to Kafka topics digest: 2a3b78d0a1b0ded8888b425d78a567ceb37d77763fc132bd5918992f43b8592a home: https://www.openfaas.com @@ -702,7 +702,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.1.1.tgz version: 0.1.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.674538103Z" + created: "2023-03-13T12:22:06.988230609Z" description: Connect OpenFaaS functions to Kafka topics digest: c745084bc749a70fdec7024f86d3d005a443ba802a68c26c937101e7bf5c942d home: https://www.openfaas.com @@ -722,9 +722,9 @@ entries: version: 0.1.0 mqtt-connector: - apiVersion: v1 - created: "2023-02-28T16:17:52.688434798Z" + created: "2023-03-13T12:22:06.999612071Z" description: Connect OpenFaaS functions to MQTT topics - digest: 2f60966874bf888cbc95b962095b30b2c7a5bad68421f2a0df1fc6c103b09844 + digest: a4892aff75631be80df713346aecded2cac3777479e8bf6f1e1df3990484e52b home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -742,7 +742,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.7.tgz version: 0.4.7 - apiVersion: v1 - created: "2023-02-28T16:17:52.688048844Z" + created: "2023-03-13T12:22:06.999413204Z" description: Connect OpenFaaS functions to MQTT topics digest: d51ea1b95387671eee9e0d7ec74890c897c6d0662e5b522695e84c42325301f6 home: https://www.openfaas.com @@ -762,7 +762,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.6.tgz version: 0.4.6 - apiVersion: v1 - created: "2023-02-28T16:17:52.687686711Z" + created: "2023-03-13T12:22:06.999217528Z" description: Connect OpenFaaS functions to MQTT topics digest: 0d36fcd2677d1e22ba9f54e90572047088aaaaf6611622bd8a82d929a0e10015 home: https://www.openfaas.com @@ -781,7 +781,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.5.tgz version: 0.4.5 - apiVersion: v1 - created: "2023-02-28T16:17:52.687339108Z" + created: "2023-03-13T12:22:06.999045542Z" description: Connect OpenFaaS functions to MQTT topics digest: be5789e807567682fa389c5a7e879660da5f281cfea9a3d2f25946be330f168e home: https://www.openfaas.com @@ -800,7 +800,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.4.tgz version: 0.4.4 - apiVersion: v1 - created: "2023-02-28T16:17:52.686987656Z" + created: "2023-03-13T12:22:06.998878906Z" description: Connect OpenFaaS functions to MQTT topics digest: a469837cda2f697a309b5512c97e0bfa536b7358b6b7b44e312877b66ae77eb2 home: https://www.openfaas.com @@ -819,7 +819,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.3.tgz version: 0.4.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.686631323Z" + created: "2023-03-13T12:22:06.99870328Z" description: Connect OpenFaaS functions to MQTT topics digest: 973e25a74f7e853c8bc1a85805083a17c355fc91d828236f40f48c5a4af7efaa home: https://www.openfaas.com @@ -838,7 +838,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.2.tgz version: 0.4.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.686251609Z" + created: "2023-03-13T12:22:06.998537635Z" description: Connect OpenFaaS functions to MQTT topics digest: f10f50fec3db6caa4953fb1f969edd3d76f3b4a88ce2e8be6bbca15b61dc67ee home: https://www.openfaas.com @@ -857,7 +857,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.1.tgz version: 0.4.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.685818413Z" + created: "2023-03-13T12:22:06.998367199Z" description: Connect OpenFaaS functions to MQTT topics digest: bf6f7ca50bf615474efe9a486f172d1cf5c45f296864d7b88afda4636e20f3ae home: https://www.openfaas.com @@ -876,7 +876,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.0.tgz version: 0.4.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.68518039Z" + created: "2023-03-13T12:22:06.998181803Z" description: Connect OpenFaaS functions to MQTT digest: 5c72894aef2b14963948c700b5a038f01faab73c430c6d4ce8daf315f72f9dfc home: https://www.openfaas.com @@ -898,9 +898,9 @@ entries: version: 0.3.1 nats-connector: - apiVersion: v1 - created: "2023-02-28T16:17:52.690134419Z" + created: "2023-03-13T12:22:07.000517901Z" description: Trigger OpenFaaS Functions from NATS Pub/Sub - digest: d24fb4470087fd1912bf1ae3257abfbd2d426b74d3fe9b8a53843ac633a358b7 + digest: b16dd7308e21c64fd1b1b3afd1e7acc80845e22972e1dedd6f1cfe4894c28115 home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -917,7 +917,7 @@ entries: - https://openfaas.github.io/faas-netes/nats-connector-0.3.2.tgz version: 0.3.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.689787937Z" + created: "2023-03-13T12:22:07.000330295Z" description: Trigger OpenFaaS Functions from NATS Pub/Sub digest: 8e7019430fe29bcc9e3811130893f9745037d496e42c861a58ca0f93919db9c7 home: https://www.openfaas.com @@ -936,7 +936,7 @@ entries: - https://openfaas.github.io/faas-netes/nats-connector-0.3.1.tgz version: 0.3.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.689469125Z" + created: "2023-03-13T12:22:07.000156119Z" description: Trigger OpenFaaS Functions from NATS Pub/Sub digest: 828c05dfde46fcee2a86e1772db16c6d7e59b55d0cee650ba45b68043db77adc home: https://www.openfaas.com @@ -957,7 +957,7 @@ entries: - https://openfaas.github.io/faas-netes/nats-connector-0.3.0.tgz version: 0.3.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.689136283Z" + created: "2023-03-13T12:22:06.999980783Z" description: Connect OpenFaaS functions to nats queues digest: 47267e87084bf59736a53386ff95e7576d00a82cdc63df2e640a1923cd471ad5 home: https://www.openfaas.com @@ -978,7 +978,7 @@ entries: - https://openfaas.github.io/faas-netes/nats-connector-0.1.1.tgz version: 0.1.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.688787351Z" + created: "2023-03-13T12:22:06.999793977Z" description: Connect OpenFaaS functions to nats queues digest: a0bbe879f171df1f279cb1882175282a15856c418bcb9841bec09a9c7ddce073 home: https://www.openfaas.com @@ -1000,7 +1000,33 @@ entries: version: 0.1.0 openfaas: - apiVersion: v2 - created: "2023-02-28T16:17:52.862062339Z" + created: "2023-03-13T12:22:07.175875398Z" + description: OpenFaaS - Serverless Functions Made Simple + digest: d00c732ccc65de02b0649278345342d5caee09a7da66a6f1b34a8bcc781459c4 + home: https://www.openfaas.com + icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png + keywords: + - serverless + - functions + - platform + - faas + maintainers: + - email: alex@openfaas.com + name: alexellis + - email: han@openfaas.com + name: welteki + - email: roesler.lucas@gmail.com + name: lucasroesler + name: openfaas + sources: + - https://github.com/openfaas/faas + - https://github.com/openfaas/faas-netes + type: application + urls: + - https://openfaas.github.io/faas-netes/openfaas-12.0.1.tgz + version: 12.0.1 + - apiVersion: v2 + created: "2023-03-13T12:22:07.173165377Z" description: OpenFaaS - Serverless Functions Made Simple digest: 08477a4ace0467f6992989913d41397b839147fe6b9cd16431aee49af6a46971 home: https://www.openfaas.com @@ -1026,7 +1052,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-12.0.0.tgz version: 12.0.0 - apiVersion: v2 - created: "2023-02-28T16:17:52.841808113Z" + created: "2023-03-13T12:22:07.15715088Z" description: OpenFaaS - Serverless Functions Made Simple digest: 555a867f84e4a12fb2ba4d0bc14e842aef339c350a327850bfe12738bf7f77eb home: https://www.openfaas.com @@ -1052,7 +1078,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.14.tgz version: 11.1.14 - apiVersion: v2 - created: "2023-02-28T16:17:52.839732818Z" + created: "2023-03-13T12:22:07.155129973Z" description: OpenFaaS - Serverless Functions Made Simple digest: 4aa8ecbd5188e43a5523f1f85e65c80ca8c78abc8942de3970d8e4913a48d1c9 home: https://www.openfaas.com @@ -1078,7 +1104,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.13.tgz version: 11.1.13 - apiVersion: v2 - created: "2023-02-28T16:17:52.837917502Z" + created: "2023-03-13T12:22:07.153772177Z" description: OpenFaaS - Serverless Functions Made Simple digest: ff7c1452ee4a7c29fde35829eefbf607ebbfde8ed58be883ac10bc0fd0b33e90 home: https://www.openfaas.com @@ -1104,7 +1130,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.12.tgz version: 11.1.12 - apiVersion: v2 - created: "2023-02-28T16:17:52.835932559Z" + created: "2023-03-13T12:22:07.152500215Z" description: OpenFaaS - Serverless Functions Made Simple digest: 0454bcd80c9a900bb6e78210a0cd8c27a6b311ce5ed280eafe9c8a45f0ea7e6d home: https://www.openfaas.com @@ -1130,7 +1156,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.11.tgz version: 11.1.11 - apiVersion: v2 - created: "2023-02-28T16:17:52.834618301Z" + created: "2023-03-13T12:22:07.151242312Z" description: OpenFaaS - Serverless Functions Made Simple digest: c18b590242e5478d3a14a9296c704098b51af70a6524206fa9e150bbc49bda1b home: https://www.openfaas.com @@ -1156,7 +1182,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.10.tgz version: 11.1.10 - apiVersion: v2 - created: "2023-02-28T16:17:52.85961195Z" + created: "2023-03-13T12:22:07.171149429Z" description: OpenFaaS - Serverless Functions Made Simple digest: dcd282e7ad5df5b59eef124add0a9ffc5e80b6dd0593c337f34efc8c46a94a42 home: https://www.openfaas.com @@ -1182,7 +1208,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.9.tgz version: 11.1.9 - apiVersion: v2 - created: "2023-02-28T16:17:52.856073142Z" + created: "2023-03-13T12:22:07.169119291Z" description: OpenFaaS - Serverless Functions Made Simple digest: 69bc798462ab1dea1d23bdb72a3cdb24a291166c5198a40f2b46c2128025d313 home: https://www.openfaas.com @@ -1208,7 +1234,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.8.tgz version: 11.1.8 - apiVersion: v2 - created: "2023-02-28T16:17:52.854299517Z" + created: "2023-03-13T12:22:07.167124285Z" description: OpenFaaS - Serverless Functions Made Simple digest: ece31b993203a5c76a28be2679184ecb61c59dc01c0479f896fc4cc32982e243 home: https://www.openfaas.com @@ -1234,7 +1260,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.7.tgz version: 11.1.7 - apiVersion: v2 - created: "2023-02-28T16:17:52.852284544Z" + created: "2023-03-13T12:22:07.165286883Z" description: OpenFaaS - Serverless Functions Made Simple digest: 1df95350fde8e0525dc56a59278a00fd86cf6df40b183e4eb45091b461cb7f33 home: https://www.openfaas.com @@ -1260,7 +1286,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.6.tgz version: 11.1.6 - apiVersion: v2 - created: "2023-02-28T16:17:52.850336063Z" + created: "2023-03-13T12:22:07.163235784Z" description: OpenFaaS - Serverless Functions Made Simple digest: bd146f496f2bf985b5354d4c1ea43a9561752d07b8db851f290eb52e1baa303f home: https://www.openfaas.com @@ -1286,7 +1312,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.5.tgz version: 11.1.5 - apiVersion: v2 - created: "2023-02-28T16:17:52.848437024Z" + created: "2023-03-13T12:22:07.162047344Z" description: OpenFaaS - Serverless Functions Made Simple digest: 0193ce6a6b68b17bf8a63915f53da6a73248401c89a0373e43c92cbd46c3d07b home: https://www.openfaas.com @@ -1312,7 +1338,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.4.tgz version: 11.1.4 - apiVersion: v2 - created: "2023-02-28T16:17:52.845980344Z" + created: "2023-03-13T12:22:07.160858544Z" description: OpenFaaS - Serverless Functions Made Simple digest: 3184c6a4a1407567860df213c65d5f318c2b89d202e342666b4da8c57f349ebe home: https://www.openfaas.com @@ -1338,7 +1364,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.3.tgz version: 11.1.3 - apiVersion: v2 - created: "2023-02-28T16:17:52.843808046Z" + created: "2023-03-13T12:22:07.159669134Z" description: OpenFaaS - Serverless Functions Made Simple digest: 4a3138c3dd6ec4f1b72693d232552b7072b4e2e5630ec6230d91d9d92fee24b7 home: https://www.openfaas.com @@ -1364,7 +1390,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.2.tgz version: 11.1.2 - apiVersion: v2 - created: "2023-02-28T16:17:52.832577347Z" + created: "2023-03-13T12:22:07.149303777Z" description: OpenFaaS - Serverless Functions Made Simple digest: 213d2eab67a345646a842296ad2870f5096fa20a8125c7ee57b1570790f9cbe9 home: https://www.openfaas.com @@ -1390,7 +1416,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.1.tgz version: 11.1.1 - apiVersion: v2 - created: "2023-02-28T16:17:52.830545634Z" + created: "2023-03-13T12:22:07.148075256Z" description: OpenFaaS - Serverless Functions Made Simple digest: 2c66050274c9e7cc2cdb1aabc53ecece83bf451ba44eb964fb2c5e66419ab26b home: https://www.openfaas.com @@ -1416,7 +1442,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.0.tgz version: 11.1.0 - apiVersion: v2 - created: "2023-02-28T16:17:52.812053821Z" + created: "2023-03-13T12:22:07.129725741Z" description: OpenFaaS - Serverless Functions Made Simple digest: ee34ee874376e6495bcc677a66f081cb637c95d156f2f516bf784116f6a3c3f2 home: https://www.openfaas.com @@ -1442,7 +1468,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.11.tgz version: 11.0.11 - apiVersion: v2 - created: "2023-02-28T16:17:52.809942815Z" + created: "2023-03-13T12:22:07.12729376Z" description: OpenFaaS - Serverless Functions Made Simple digest: e01fbc73ae8c914b7f8eeec96e3facf91b4ba815c42fc34d92e6ec7005046114 home: https://www.openfaas.com @@ -1468,7 +1494,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.10.tgz version: 11.0.10 - apiVersion: v2 - created: "2023-02-28T16:17:52.827547185Z" + created: "2023-03-13T12:22:07.146556905Z" description: OpenFaaS - Serverless Functions Made Simple digest: acf5bcd2445619482509fa3ce0770fa4e610c4fcb0da65abed261e6409390374 home: https://www.openfaas.com @@ -1494,7 +1520,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.9.tgz version: 11.0.9 - apiVersion: v2 - created: "2023-02-28T16:17:52.825534051Z" + created: "2023-03-13T12:22:07.144066872Z" description: OpenFaaS - Serverless Functions Made Simple digest: 3919b1033d2027b8de16fbcc5edec6db4c4a587718d3440ec50573d42dcb1776 home: https://www.openfaas.com @@ -1520,7 +1546,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.8.tgz version: 11.0.8 - apiVersion: v2 - created: "2023-02-28T16:17:52.823731506Z" + created: "2023-03-13T12:22:07.140995639Z" description: OpenFaaS - Serverless Functions Made Simple digest: 941730bbe823d5d8434f9fc6905c8538b9b786e3872c842826afc3c680bd79d0 home: https://www.openfaas.com @@ -1546,7 +1572,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.7.tgz version: 11.0.7 - apiVersion: v2 - created: "2023-02-28T16:17:52.821897969Z" + created: "2023-03-13T12:22:07.138733573Z" description: OpenFaaS - Serverless Functions Made Simple digest: b6591abb8694ce4741d9e3f93625d158dd83845f51211cf24120069557b843cc home: https://www.openfaas.com @@ -1572,7 +1598,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.6.tgz version: 11.0.6 - apiVersion: v2 - created: "2023-02-28T16:17:52.820297291Z" + created: "2023-03-13T12:22:07.136930023Z" description: OpenFaaS - Serverless Functions Made Simple digest: 5dbebd2eb7d46307d80d3f5f2404bfc2b13c9ff2b810c7f091df3791aec0052b home: https://www.openfaas.com @@ -1598,7 +1624,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.5.tgz version: 11.0.5 - apiVersion: v2 - created: "2023-02-28T16:17:52.817676536Z" + created: "2023-03-13T12:22:07.1350598Z" description: OpenFaaS - Serverless Functions Made Simple digest: 3755d9c54dc6d95b15a881213b855ef5d699ba66c7c8c1fe7eb4de4287a5fff2 home: https://www.openfaas.com @@ -1624,7 +1650,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.4.tgz version: 11.0.4 - apiVersion: v2 - created: "2023-02-28T16:17:52.815814498Z" + created: "2023-03-13T12:22:07.133296401Z" description: OpenFaaS - Serverless Functions Made Simple digest: c64f5c673fa19fb4794c93a11a64005d0b13b01d7b9df0a0ff837da7eb18367d home: https://www.openfaas.com @@ -1650,7 +1676,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.3.tgz version: 11.0.3 - apiVersion: v2 - created: "2023-02-28T16:17:52.813957271Z" + created: "2023-03-13T12:22:07.131430758Z" description: OpenFaaS - Serverless Functions Made Simple digest: 015456d5d25caaa4ec4f272fa852f2e8a0255838b8a8f766d1930ee1bfd61029 home: https://www.openfaas.com @@ -1676,7 +1702,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.2.tgz version: 11.0.2 - apiVersion: v2 - created: "2023-02-28T16:17:52.807111642Z" + created: "2023-03-13T12:22:07.124787406Z" description: OpenFaaS - Serverless Functions Made Simple digest: 1043afa0b824082ebf574438f7abb9dcf6f305c9b0b8fa280302af3682fce6d0 home: https://www.openfaas.com @@ -1702,7 +1728,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.1.tgz version: 11.0.1 - apiVersion: v2 - created: "2023-02-28T16:17:52.804759627Z" + created: "2023-03-13T12:22:07.122067704Z" description: OpenFaaS - Serverless Functions Made Simple digest: 309ea32c72e0b426d7aaddc36e56c50b9bada81ce3c305f699e5ea3cfb33d4d4 home: https://www.openfaas.com @@ -1728,7 +1754,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.0.tgz version: 11.0.0 - apiVersion: v2 - created: "2023-02-28T16:17:52.784467059Z" + created: "2023-03-13T12:22:07.103346317Z" description: OpenFaaS - Serverless Functions Made Simple digest: 37ae0a50f9d95702b7318e2373b54ea9797946f38d44b147d23326adfe94de38 home: https://www.openfaas.com @@ -1754,7 +1780,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.13.tgz version: 10.2.13 - apiVersion: v2 - created: "2023-02-28T16:17:52.782538319Z" + created: "2023-03-13T12:22:07.100635106Z" description: OpenFaaS - Serverless Functions Made Simple digest: cee1804357e5162c413b030be086a6a3ccfe4b02332b49faa1de4bdfc5818d64 home: https://www.openfaas.com @@ -1780,7 +1806,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.12.tgz version: 10.2.12 - apiVersion: v2 - created: "2023-02-28T16:17:52.780623979Z" + created: "2023-03-13T12:22:07.098850376Z" description: OpenFaaS - Serverless Functions Made Simple digest: 8cface2b5d5a39f365c904b8511fa0baf0015d666e8c314239fb5bfbee55c38a home: https://www.openfaas.com @@ -1806,7 +1832,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.11.tgz version: 10.2.11 - apiVersion: v2 - created: "2023-02-28T16:17:52.778155389Z" + created: "2023-03-13T12:22:07.097104118Z" description: OpenFaaS - Serverless Functions Made Simple digest: 56be99b85f4734031819defd9d825459421f1fd0555fb3909d379b90ede54a60 home: https://www.openfaas.com @@ -1832,7 +1858,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.10.tgz version: 10.2.10 - apiVersion: v2 - created: "2023-02-28T16:17:52.80238227Z" + created: "2023-03-13T12:22:07.120494602Z" description: OpenFaaS - Serverless Functions Made Simple digest: c35fe55ca20c6f1ef36780fa1ad0d0cea03840caec14bf4327e5e49d0f54d88b home: https://www.openfaas.com @@ -1858,7 +1884,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.9.tgz version: 10.2.9 - apiVersion: v2 - created: "2023-02-28T16:17:52.799327919Z" + created: "2023-03-13T12:22:07.119328183Z" description: OpenFaaS - Serverless Functions Made Simple digest: 210ee87dc07d061ccae9a0399f6badd5c6cf491877918783892aa35e9654090c home: https://www.openfaas.com @@ -1884,7 +1910,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.8.tgz version: 10.2.8 - apiVersion: v2 - created: "2023-02-28T16:17:52.797540964Z" + created: "2023-03-13T12:22:07.116787168Z" description: OpenFaaS - Serverless Functions Made Simple digest: bc85d497a340a378d106a5e4ff353b655bf79533a7e63e08cc12f703347364f0 home: https://www.openfaas.com @@ -1910,7 +1936,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.7.tgz version: 10.2.7 - apiVersion: v2 - created: "2023-02-28T16:17:52.795279412Z" + created: "2023-03-13T12:22:07.114425478Z" description: OpenFaaS - Serverless Functions Made Simple digest: a1c6244819534d374d7de24a0c0027d6a8d1118e5bec16cda4c377dfd995ffb3 home: https://www.openfaas.com @@ -1936,7 +1962,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.6.tgz version: 10.2.6 - apiVersion: v2 - created: "2023-02-28T16:17:52.793073602Z" + created: "2023-03-13T12:22:07.111928655Z" description: OpenFaaS - Serverless Functions Made Simple digest: 7a50e3ab2c63164c980024c1eb5ac52dd94761b7ec2df266f5d697c024b81815 home: https://www.openfaas.com @@ -1962,7 +1988,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.5.tgz version: 10.2.5 - apiVersion: v2 - created: "2023-02-28T16:17:52.790691405Z" + created: "2023-03-13T12:22:07.11059836Z" description: OpenFaaS - Serverless Functions Made Simple digest: 10246e6f48b06bdfcca75269775a36f48fd07f555eb3ae31a9f60da708322e7f home: https://www.openfaas.com @@ -1988,7 +2014,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.4.tgz version: 10.2.4 - apiVersion: v2 - created: "2023-02-28T16:17:52.788775075Z" + created: "2023-03-13T12:22:07.108285443Z" description: OpenFaaS - Serverless Functions Made Simple digest: c314cc6ce2fd0f7c723e27ff6d8b5aa21058b926ae583964333f7447a225dbab home: https://www.openfaas.com @@ -2014,7 +2040,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.3.tgz version: 10.2.3 - apiVersion: v2 - created: "2023-02-28T16:17:52.786468711Z" + created: "2023-03-13T12:22:07.105939164Z" description: OpenFaaS - Serverless Functions Made Simple digest: ca128987afb7240ceb9530330a58787985a42d8d8235263dbc20bab8b68198a0 home: https://www.openfaas.com @@ -2040,7 +2066,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.2.tgz version: 10.2.2 - apiVersion: v2 - created: "2023-02-28T16:17:52.776981117Z" + created: "2023-03-13T12:22:07.094991997Z" description: OpenFaaS - Serverless Functions Made Simple digest: 7317c7ebec91cdf523b12ca1b89cc50fd7308d1a835d97ea26f1295161e0e60f home: https://www.openfaas.com @@ -2066,7 +2092,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.1.tgz version: 10.2.1 - apiVersion: v2 - created: "2023-02-28T16:17:52.775891497Z" + created: "2023-03-13T12:22:07.093353362Z" description: OpenFaaS - Serverless Functions Made Simple digest: ca8263eb1b14fc1ce3c3c921481e950c4102b685abf91a0961cb74c85d1ec506 home: https://www.openfaas.com @@ -2092,7 +2118,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.0.tgz version: 10.2.0 - apiVersion: v2 - created: "2023-02-28T16:17:52.774790627Z" + created: "2023-03-13T12:22:07.091643745Z" description: OpenFaaS - Serverless Functions Made Simple digest: 2f8cf5f1986b1f75d748d1f04ba8abec9592ad2d5c55fd43ccdd95f7aa4cbe9b home: https://www.openfaas.com @@ -2118,7 +2144,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.1.4.tgz version: 10.1.4 - apiVersion: v2 - created: "2023-02-28T16:17:52.773704167Z" + created: "2023-03-13T12:22:07.089932948Z" description: OpenFaaS - Serverless Functions Made Simple digest: 77926bf5f98a47a5e44c3fc9276728a2e7f2a66c5d2add6d0c0048bc2a523ee1 home: https://www.openfaas.com @@ -2144,7 +2170,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.1.3.tgz version: 10.1.3 - apiVersion: v2 - created: "2023-02-28T16:17:52.772614198Z" + created: "2023-03-13T12:22:07.087765265Z" description: OpenFaaS - Serverless Functions Made Simple digest: 1529a7bc0f788125c5e10bd3fdb95b9f1191c715dee079ad2c84162c59d7334e home: https://www.openfaas.com @@ -2170,7 +2196,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.1.2.tgz version: 10.1.2 - apiVersion: v2 - created: "2023-02-28T16:17:52.770646857Z" + created: "2023-03-13T12:22:07.08553567Z" description: OpenFaaS - Serverless Functions Made Simple digest: 1e94ac1bf91b182bc4a70aa53017aadf280d9f67a336f63eb23c93591df8cee3 home: https://www.openfaas.com @@ -2196,7 +2222,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.1.1.tgz version: 10.1.1 - apiVersion: v2 - created: "2023-02-28T16:17:52.768944355Z" + created: "2023-03-13T12:22:07.083298935Z" description: OpenFaaS - Serverless Functions Made Simple digest: 050eda187d1303f42bb6f8200b790c6346beef6a0b1dc868335a44cc4bacbce4 home: https://www.openfaas.com @@ -2222,7 +2248,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.1.0.tgz version: 10.1.0 - apiVersion: v2 - created: "2023-02-28T16:17:52.756454991Z" + created: "2023-03-13T12:22:07.068199169Z" description: OpenFaaS - Serverless Functions Made Simple digest: 5053a6af09c82dca40d1afd79bc66d00ad822ca3da00fb8f1395f58b3a297f40 home: https://www.openfaas.com @@ -2248,7 +2274,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.28.tgz version: 10.0.28 - apiVersion: v2 - created: "2023-02-28T16:17:52.754882573Z" + created: "2023-03-13T12:22:07.066489252Z" description: OpenFaaS - Serverless Functions Made Simple digest: e8c7e565a72f72a22a79646cb08f5612a13e06f6a58b81b4df4886af42bf99dd home: https://www.openfaas.com @@ -2274,7 +2300,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.27.tgz version: 10.0.27 - apiVersion: v2 - created: "2023-02-28T16:17:52.751865553Z" + created: "2023-03-13T12:22:07.064450294Z" description: OpenFaaS - Serverless Functions Made Simple digest: aa5fcf1bf0c25edd1b3127a4fe6619bdf68298263a6ab7066d81e1669bb360f7 home: https://www.openfaas.com @@ -2300,7 +2326,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.25.tgz version: 10.0.25 - apiVersion: v2 - created: "2023-02-28T16:17:52.749604851Z" + created: "2023-03-13T12:22:07.062755697Z" description: OpenFaaS - Serverless Functions Made Simple digest: fefb60a72623d54906de3a9df36a9170a13bedad33413f36279b8696d4f0c30f home: https://www.openfaas.com @@ -2326,7 +2352,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.24.tgz version: 10.0.24 - apiVersion: v2 - created: "2023-02-28T16:17:52.74736735Z" + created: "2023-03-13T12:22:07.060238442Z" description: OpenFaaS - Serverless Functions Made Simple digest: 651ab07949817e0649bbaff973f30619b4561c2943f22f30345eb5f4a100ced6 home: https://www.openfaas.com @@ -2350,7 +2376,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.23.tgz version: 10.0.23 - apiVersion: v2 - created: "2023-02-28T16:17:52.745028845Z" + created: "2023-03-13T12:22:07.058240566Z" description: OpenFaaS - Serverless Functions Made Simple digest: 758a7bf0a689a278236a26c01e3475ffb9f04244539e3db4b0283be6070fcb93 home: https://www.openfaas.com @@ -2374,7 +2400,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.22.tgz version: 10.0.22 - apiVersion: v2 - created: "2023-02-28T16:17:52.742176391Z" + created: "2023-03-13T12:22:07.05656889Z" description: OpenFaaS - Serverless Functions Made Simple digest: ee87efd307cdd3c4b0a8ec84b6c5290d919aea00f83ea074b7e030b1c6fd6165 home: https://www.openfaas.com @@ -2398,7 +2424,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.21.tgz version: 10.0.21 - apiVersion: v2 - created: "2023-02-28T16:17:52.73993635Z" + created: "2023-03-13T12:22:07.054895313Z" description: OpenFaaS - Serverless Functions Made Simple digest: ade9365e4b26cd116e58fbe9320f7aeaf201363c960ef49bfcf7b1463c117083 home: https://www.openfaas.com @@ -2422,7 +2448,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.20.tgz version: 10.0.20 - apiVersion: v2 - created: "2023-02-28T16:17:52.73579687Z" + created: "2023-03-13T12:22:07.051710417Z" description: OpenFaaS - Serverless Functions Made Simple digest: c84eaae4d8715722dc2ed628f652ef139826f3eb67ebdc8b5665eec5c6120bdb home: https://www.openfaas.com @@ -2446,7 +2472,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.19.tgz version: 10.0.19 - apiVersion: v2 - created: "2023-02-28T16:17:52.733708944Z" + created: "2023-03-13T12:22:07.049692879Z" description: OpenFaaS - Serverless Functions Made Simple digest: 1c0248fc03c0179f63786278239e2fdc3c7a1b23bcf549b9f44e88169167af1c home: https://www.openfaas.com @@ -2470,7 +2496,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.17.tgz version: 10.0.17 - apiVersion: v2 - created: "2023-02-28T16:17:52.731567546Z" + created: "2023-03-13T12:22:07.04761695Z" description: OpenFaaS - Serverless Functions Made Simple digest: dfe550333fcee30a8533cd0352469c1115da753f41f971d760ec8892e78fbc33 home: https://www.openfaas.com @@ -2494,7 +2520,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.16.tgz version: 10.0.16 - apiVersion: v2 - created: "2023-02-28T16:17:52.729278153Z" + created: "2023-03-13T12:22:07.045100505Z" description: OpenFaaS - Serverless Functions Made Simple digest: 6f6cc2fc7d5dffd8434e152e459122c82703bb7bd8e27e71b5f8c51ba3d4d825 home: https://www.openfaas.com @@ -2518,7 +2544,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.15.tgz version: 10.0.15 - apiVersion: v2 - created: "2023-02-28T16:17:52.728194613Z" + created: "2023-03-13T12:22:07.042996755Z" description: OpenFaaS - Serverless Functions Made Simple digest: ce8930519796651c8a73d2c1428d218f71294fb5325404181d452b05c185f9ba home: https://www.openfaas.com @@ -2542,7 +2568,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.14.tgz version: 10.0.14 - apiVersion: v2 - created: "2023-02-28T16:17:52.727165906Z" + created: "2023-03-13T12:22:07.04076477Z" description: OpenFaaS - Serverless Functions Made Simple digest: b0a3bab45a6e21c67686c291db81217b969e884223f27f61cebd8f6db7629fbc home: https://www.openfaas.com @@ -2566,7 +2592,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.13.tgz version: 10.0.13 - apiVersion: v2 - created: "2023-02-28T16:17:52.726171809Z" + created: "2023-03-13T12:22:07.039694654Z" description: OpenFaaS - Serverless Functions Made Simple digest: f9904174431dc0e792d57e2c686e52c9a5b5ee0b78aedec047d4c143515628e3 home: https://www.openfaas.com @@ -2590,7 +2616,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.12.tgz version: 10.0.12 - apiVersion: v2 - created: "2023-02-28T16:17:52.725129932Z" + created: "2023-03-13T12:22:07.038337448Z" description: OpenFaaS - Serverless Functions Made Simple digest: 3affb5ae8852bfe150a1888c6e9ee4ae3e4d166f996d1328ee5f457409682cae home: https://www.openfaas.com @@ -2614,7 +2640,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.11.tgz version: 10.0.11 - apiVersion: v2 - created: "2023-02-28T16:17:52.723740351Z" + created: "2023-03-13T12:22:07.036253199Z" description: OpenFaaS - Serverless Functions Made Simple digest: 85ef8245e7b8c7949983af66c29aa9141e6fdf560d8e218f6b912054266e7093 home: https://www.openfaas.com @@ -2638,7 +2664,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.10.tgz version: 10.0.10 - apiVersion: v2 - created: "2023-02-28T16:17:52.767250803Z" + created: "2023-03-13T12:22:07.080805122Z" description: OpenFaaS - Serverless Functions Made Simple digest: 71627b67840be8d360d37fd20c6d4c13d906a4a9b75eb014df27a87f87872485 home: https://www.openfaas.com @@ -2662,7 +2688,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.9.tgz version: 10.0.9 - apiVersion: v2 - created: "2023-02-28T16:17:52.765819471Z" + created: "2023-03-13T12:22:07.079754077Z" description: OpenFaaS - Serverless Functions Made Simple digest: 082b13a8a75f7e6c7a1c86450d1907b29c6f9d31cbc836b84ec31915d6c22d5e home: https://www.openfaas.com @@ -2686,7 +2712,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.8.tgz version: 10.0.8 - apiVersion: v2 - created: "2023-02-28T16:17:52.763931322Z" + created: "2023-03-13T12:22:07.078541246Z" description: OpenFaaS - Serverless Functions Made Simple digest: 5c6ac52c5d2a28e11f67a9f241ac93e520f998c2595d877522123e5634a87547 home: https://www.openfaas.com @@ -2710,7 +2736,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.7.tgz version: 10.0.7 - apiVersion: v2 - created: "2023-02-28T16:17:52.762819172Z" + created: "2023-03-13T12:22:07.076463226Z" description: OpenFaaS - Serverless Functions Made Simple digest: e024848f68ffe4f6ac10140c0621094918fb9dd419bcf639deaa62c86feb7b08 home: https://www.openfaas.com @@ -2734,7 +2760,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.6.tgz version: 10.0.6 - apiVersion: v2 - created: "2023-02-28T16:17:52.76112303Z" + created: "2023-03-13T12:22:07.074403987Z" description: OpenFaaS - Serverless Functions Made Simple digest: ee5390106602108ca86c6f735dfb4cd01f2b687501b09034fa86bd4ee9028fff home: https://www.openfaas.com @@ -2758,7 +2784,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.5.tgz version: 10.0.5 - apiVersion: v2 - created: "2023-02-28T16:17:52.759541933Z" + created: "2023-03-13T12:22:07.072257505Z" description: OpenFaaS - Serverless Functions Made Simple digest: cc8453bd258d392a3a7a7a454c420809de9a663ba5c98a04bfd805b56265bfe7 home: https://www.openfaas.com @@ -2782,7 +2808,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.4.tgz version: 10.0.4 - apiVersion: v2 - created: "2023-02-28T16:17:52.758013537Z" + created: "2023-03-13T12:22:07.069824464Z" description: OpenFaaS - Serverless Functions Made Simple digest: 396bfb83c37d55f995ba2a58a939db39fb00955fb2bd97fe3cb606a5c251aad1 home: https://www.openfaas.com @@ -2806,7 +2832,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.3.tgz version: 10.0.3 - apiVersion: v2 - created: "2023-02-28T16:17:52.737773911Z" + created: "2023-03-13T12:22:07.053335991Z" description: OpenFaaS - Serverless Functions Made Simple digest: f03774cdfffa47400bd4952342dea21cea1e81076135d5a4c7ed330b3276d82d home: https://www.openfaas.com @@ -2830,7 +2856,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.2.tgz version: 10.0.2 - apiVersion: v2 - created: "2023-02-28T16:17:52.722642272Z" + created: "2023-03-13T12:22:07.034213021Z" description: OpenFaaS - Serverless Functions Made Simple digest: 78228ec7d71f7c61e64c1c6db1a1ddeba4de730ee9409ca5cbdefbb20c3fb8ba home: https://www.openfaas.com @@ -2854,7 +2880,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.1.tgz version: 10.0.1 - apiVersion: v2 - created: "2023-02-28T16:17:52.720525945Z" + created: "2023-03-13T12:22:07.032156512Z" description: OpenFaaS - Serverless Functions Made Simple digest: 608d37100a2008cefd74a69793482b8cdd35d6755cff75b56005ffb83d8faf4a home: https://www.openfaas.com @@ -2878,7 +2904,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.0.tgz version: 10.0.0 - apiVersion: v2 - created: "2023-02-28T16:17:53.041694588Z" + created: "2023-03-13T12:22:07.36332441Z" description: OpenFaaS - Serverless Functions Made Simple digest: c7195a933e3ec516c959986f7ac3bdb6bf1659fdf484e41fa577072e6a30f760 home: https://www.openfaas.com @@ -2904,7 +2930,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-9.0.2.tgz version: 9.0.2 - apiVersion: v2 - created: "2023-02-28T16:17:53.040207634Z" + created: "2023-03-13T12:22:07.361509909Z" description: OpenFaaS - Serverless Functions Made Simple digest: b6c705b1e61b4af6abaaf64129ed8568831d6daa9fc73ab8acc59b045746cfeb home: https://www.openfaas.com @@ -2930,7 +2956,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-9.0.1.tgz version: 9.0.1 - apiVersion: v2 - created: "2023-02-28T16:17:53.03871272Z" + created: "2023-03-13T12:22:07.359066967Z" description: OpenFaaS - Serverless Functions Made Simple digest: cd6d569f2d3cd5176e08a4e81b2b8b8248a6ccffdfd9fc1b1914ae208ba035e6 home: https://www.openfaas.com @@ -2956,7 +2982,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-9.0.0.tgz version: 9.0.0 - apiVersion: v2 - created: "2023-02-28T16:17:53.037158764Z" + created: "2023-03-13T12:22:07.357517985Z" description: OpenFaaS - Serverless Functions Made Simple digest: 3091976030ac3b2043f351eb72182410bb75a884c79327e117b82f7605bbd8ec home: https://www.openfaas.com @@ -2982,7 +3008,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.1.3.tgz version: 8.1.3 - apiVersion: v2 - created: "2023-02-28T16:17:53.035809234Z" + created: "2023-03-13T12:22:07.355987404Z" description: OpenFaaS - Serverless Functions Made Simple digest: 28ace538f03ddbe01d41e683863a318718dc957feac5523ad36cdbe25a614360 home: https://www.openfaas.com @@ -3008,7 +3034,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.1.2.tgz version: 8.1.2 - apiVersion: v2 - created: "2023-02-28T16:17:53.033193709Z" + created: "2023-03-13T12:22:07.354832705Z" description: OpenFaaS - Serverless Functions Made Simple digest: d62605f5f277455c9c5ab3c977fd3b4edc3dae804374ebf4a6b912e27c5a04c4 home: https://www.openfaas.com @@ -3034,7 +3060,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.1.1.tgz version: 8.1.1 - apiVersion: v2 - created: "2023-02-28T16:17:53.031623253Z" + created: "2023-03-13T12:22:07.353357336Z" description: OpenFaaS - Serverless Functions Made Simple digest: 4358371100066f56747c6ad9709dbed08144de5b993df8753497281344aaef75 home: https://www.openfaas.com @@ -3060,7 +3086,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.1.0.tgz version: 8.1.0 - apiVersion: v2 - created: "2023-02-28T16:17:53.030037825Z" + created: "2023-03-13T12:22:07.352182837Z" description: OpenFaaS - Serverless Functions Made Simple digest: fa5fc22434f55e663e1c6ea4f4d939a2aaef07d4bba285568615934b344779fa home: https://www.openfaas.com @@ -3086,7 +3112,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.7.tgz version: 8.0.7 - apiVersion: v2 - created: "2023-02-28T16:17:53.028495339Z" + created: "2023-03-13T12:22:07.350745859Z" description: OpenFaaS - Serverless Functions Made Simple digest: 768b1ab76dadbe2921faeb76afb09a3c407850ecb5ec4ce0bd84f18c84369baa home: https://www.openfaas.com @@ -3112,7 +3138,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.6.tgz version: 8.0.6 - apiVersion: v2 - created: "2023-02-28T16:17:53.026896781Z" + created: "2023-03-13T12:22:07.348670039Z" description: OpenFaaS - Serverless Functions Made Simple digest: ea89690161e44b0dd6d590622a34f10b72a472ef0ccbc11c99437a4ae4334742 home: https://www.openfaas.com @@ -3138,7 +3164,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.5.tgz version: 8.0.5 - apiVersion: v2 - created: "2023-02-28T16:17:53.025291112Z" + created: "2023-03-13T12:22:07.347160678Z" description: OpenFaaS - Serverless Functions Made Simple digest: cbc2353db6915574d700b55d1ced7ef0ed18569e906ad2345854ba7e3c850b44 home: https://www.openfaas.com @@ -3164,7 +3190,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.4.tgz version: 8.0.4 - apiVersion: v2 - created: "2023-02-28T16:17:53.023533908Z" + created: "2023-03-13T12:22:07.345642187Z" description: OpenFaaS - Serverless Functions Made Simple digest: 966e48f7955f543a85b688bad540ee5189b50f83b08a2a36e70365ea5208a13a home: https://www.openfaas.com @@ -3190,7 +3216,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.3.tgz version: 8.0.3 - apiVersion: v2 - created: "2023-02-28T16:17:53.022420628Z" + created: "2023-03-13T12:22:07.344125046Z" description: OpenFaaS - Serverless Functions Made Simple digest: 79a22450a575a463cfd8ccdc0149f286411108401ca4e56c264e94ea9d8fa68e home: https://www.openfaas.com @@ -3216,7 +3242,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.2.tgz version: 8.0.2 - apiVersion: v2 - created: "2023-02-28T16:17:53.020474287Z" + created: "2023-03-13T12:22:07.342844103Z" description: OpenFaaS - Serverless Functions Made Simple digest: aa440cb36e8a6021290500c5bbe2ef73d26e9ec8a903a02d81c3ac0d1e0f8f6d home: https://www.openfaas.com @@ -3242,7 +3268,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.1.tgz version: 8.0.1 - apiVersion: v2 - created: "2023-02-28T16:17:53.018591749Z" + created: "2023-03-13T12:22:07.341001192Z" description: OpenFaaS - Serverless Functions Made Simple digest: a0c8fd7ca435daf758dff635a834cd49d5d01559efec554ac852d8f6df99ee1d home: https://www.openfaas.com @@ -3268,7 +3294,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.0.tgz version: 8.0.0 - apiVersion: v2 - created: "2023-02-28T16:17:53.016660799Z" + created: "2023-03-13T12:22:07.339987608Z" description: OpenFaaS - Serverless Functions Made Simple digest: 2b93bb822ea558d78f6fc44c0dae5dde891cf92a44913693691bfd04cdbe2c73 home: https://www.openfaas.com @@ -3294,7 +3320,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.4.4.tgz version: 7.4.4 - apiVersion: v2 - created: "2023-02-28T16:17:53.014683367Z" + created: "2023-03-13T12:22:07.338944943Z" description: OpenFaaS - Serverless Functions Made Simple digest: 98fa1c88d41e6ce1406a0876c3c8cf3192c1142242a99180d77278d38ab198b5 home: https://www.openfaas.com @@ -3320,7 +3346,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.4.3.tgz version: 7.4.3 - apiVersion: v2 - created: "2023-02-28T16:17:53.01231534Z" + created: "2023-03-13T12:22:07.336621715Z" description: OpenFaaS - Serverless Functions Made Simple digest: 382031dd362c5bec8ba69c7b44ce7c750ad8653016b2daf321d498131630d537 home: https://www.openfaas.com @@ -3346,7 +3372,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.4.2.tgz version: 7.4.2 - apiVersion: v2 - created: "2023-02-28T16:17:53.011403237Z" + created: "2023-03-13T12:22:07.334660889Z" description: OpenFaaS - Serverless Functions Made Simple digest: f7c35ea485fa1bab40e98253dfe93789bea79e6b993eb1ce8e86be11c581516b home: https://www.openfaas.com @@ -3372,7 +3398,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.4.1.tgz version: 7.4.1 - apiVersion: v2 - created: "2023-02-28T16:17:53.010516815Z" + created: "2023-03-13T12:22:07.332656832Z" description: OpenFaaS - Serverless Functions Made Simple digest: 887fd25412847c689ac3c4d13eb1a34f7e853ea74a205041420efe95a368731a home: https://www.openfaas.com @@ -3398,7 +3424,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.4.0.tgz version: 7.4.0 - apiVersion: v2 - created: "2023-02-28T16:17:53.009627343Z" + created: "2023-03-13T12:22:07.330717887Z" description: OpenFaaS - Serverless Functions Made Simple digest: 19c3928b9847837212a2a70b68713f9ec9a8f640e576ba05ba7295e5581e3250 home: https://www.openfaas.com @@ -3424,7 +3450,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.3.2.tgz version: 7.3.2 - apiVersion: v2 - created: "2023-02-28T16:17:53.00872517Z" + created: "2023-03-13T12:22:07.328551554Z" description: OpenFaaS - Serverless Functions Made Simple digest: bdb550735abf96a6b0780e6c0748c898f047aa448db9b664e01283650e602c49 home: https://www.openfaas.com @@ -3450,7 +3476,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.3.1.tgz version: 7.3.1 - apiVersion: v2 - created: "2023-02-28T16:17:53.007816447Z" + created: "2023-03-13T12:22:07.327149687Z" description: OpenFaaS - Serverless Functions Made Simple digest: f1c59f0e9c4a017519e3e89a0a8d74c4c198571ff6da2dda312a6a30478eb439 home: https://www.openfaas.com @@ -3476,7 +3502,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.3.0.tgz version: 7.3.0 - apiVersion: v2 - created: "2023-02-28T16:17:53.005801694Z" + created: "2023-03-13T12:22:07.325682688Z" description: OpenFaaS - Serverless Functions Made Simple digest: f5add7a2802d4520c5edcf3e0fe6e9b142182534fd3a06fe00b9e0e2f0600dab home: https://www.openfaas.com @@ -3502,7 +3528,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.8.tgz version: 7.2.8 - apiVersion: v2 - created: "2023-02-28T16:17:53.00431862Z" + created: "2023-03-13T12:22:07.324201199Z" description: OpenFaaS - Serverless Functions Made Simple digest: 7534e1ee604b6e5d2d57c1a3758c39fa40a3722097e0474fc741abff9d0e393a home: https://www.openfaas.com @@ -3528,7 +3554,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.7.tgz version: 7.2.7 - apiVersion: v2 - created: "2023-02-28T16:17:53.002859917Z" + created: "2023-03-13T12:22:07.322955917Z" description: OpenFaaS - Serverless Functions Made Simple digest: 7d007708e7e1671c420e00f22dd64ae0d50fdb7ff953c9c24a52e7417343bd97 home: https://www.openfaas.com @@ -3554,7 +3580,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.6.tgz version: 7.2.6 - apiVersion: v2 - created: "2023-02-28T16:17:53.001407434Z" + created: "2023-03-13T12:22:07.321297431Z" description: OpenFaaS - Serverless Functions Made Simple digest: 13a250251d1d2c1b9ba7b419236f5c3a1b09c20bfd85b6d6172715c3663a1b60 home: https://www.openfaas.com @@ -3580,7 +3606,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.5.tgz version: 7.2.5 - apiVersion: v2 - created: "2023-02-28T16:17:52.999871228Z" + created: "2023-03-13T12:22:07.320338789Z" description: OpenFaaS - Serverless Functions Made Simple digest: 6f3caa7ef5ce337c8d0ddb44a0f9d463240972a6dc4800949770746d764b7fa9 home: https://www.openfaas.com @@ -3606,7 +3632,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.4.tgz version: 7.2.4 - apiVersion: v2 - created: "2023-02-28T16:17:52.998660424Z" + created: "2023-03-13T12:22:07.319438699Z" description: OpenFaaS - Serverless Functions Made Simple digest: 0ea59d1ac83ea2e4390d2e90a6ee5ad0c30061e70859f32549a566ffdd1992cc home: https://www.openfaas.com @@ -3632,7 +3658,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.3.tgz version: 7.2.3 - apiVersion: v2 - created: "2023-02-28T16:17:52.996891Z" + created: "2023-03-13T12:22:07.318191537Z" description: OpenFaaS - Serverless Functions Made Simple digest: 2b29cf6deaaadad545647508af9bf22df397dcf3fecb70d43f54a54ecb6536bd home: https://www.openfaas.com @@ -3658,7 +3684,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.2.tgz version: 7.2.2 - apiVersion: v2 - created: "2023-02-28T16:17:52.995961956Z" + created: "2023-03-13T12:22:07.316747729Z" description: OpenFaaS - Serverless Functions Made Simple digest: 68bba3705d2e9c0c0a6afea87d09e4edfc7a76f688fbe4abe08ab191bb4bd01e home: https://www.openfaas.com @@ -3684,7 +3710,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.1.tgz version: 7.2.1 - apiVersion: v2 - created: "2023-02-28T16:17:52.995048513Z" + created: "2023-03-13T12:22:07.315277589Z" description: OpenFaaS - Serverless Functions Made Simple digest: 1c1cc94e1883dabd6dc3817d6c2f91cc22674196c1f118ae5aa1edb4d7a6bc31 home: https://www.openfaas.com @@ -3710,7 +3736,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.0.tgz version: 7.2.0 - apiVersion: v2 - created: "2023-02-28T16:17:52.993667723Z" + created: "2023-03-13T12:22:07.314011897Z" description: OpenFaaS - Serverless Functions Made Simple digest: 140f1475d1aac65f7236e452085c8ceb2c13a0ffe6d7bc411bdafa55ebf9f420 home: https://www.openfaas.com @@ -3736,7 +3762,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.1.2.tgz version: 7.1.2 - apiVersion: v2 - created: "2023-02-28T16:17:52.992190199Z" + created: "2023-03-13T12:22:07.31200906Z" description: OpenFaaS - Serverless Functions Made Simple digest: 491a6a707145be70ccd2cf8f1a6250cc32fb9d11bca2b2952f1b9c86e641dc1d home: https://www.openfaas.com @@ -3762,7 +3788,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.1.1.tgz version: 7.1.1 - apiVersion: v2 - created: "2023-02-28T16:17:52.990680094Z" + created: "2023-03-13T12:22:07.310530651Z" description: OpenFaaS - Serverless Functions Made Simple digest: 2b55582ab7f8414c697832d49d427a63710053d2c15301adf226620b69377c49 home: https://www.openfaas.com @@ -3788,7 +3814,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.1.0.tgz version: 7.1.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.989212891Z" + created: "2023-03-13T12:22:07.309068542Z" description: OpenFaaS - Serverless Functions Made Simple digest: 833259e2de8fdfd9f4da0dbb78bda50572105db2af0362c36e7f644de6352d4c home: https://www.openfaas.com @@ -3813,7 +3839,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.0.4.tgz version: 7.0.4 - apiVersion: v1 - created: "2023-02-28T16:17:52.987772448Z" + created: "2023-03-13T12:22:07.307585692Z" description: OpenFaaS - Serverless Functions Made Simple digest: f8127c4f2b33bf7ea691ca929a3310633b0fd1a6721d99df7eb9b40fdab746b2 home: https://www.openfaas.com @@ -3838,7 +3864,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.0.3.tgz version: 7.0.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.986847455Z" + created: "2023-03-13T12:22:07.30575169Z" description: OpenFaaS - Serverless Functions Made Simple digest: 9104fd565cb86b366796a2ff49b2e354b2e320f60c9f8343043e6cb89a4367a5 home: https://www.openfaas.com @@ -3863,7 +3889,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.0.2.tgz version: 7.0.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.98589972Z" + created: "2023-03-13T12:22:07.303320659Z" description: OpenFaaS - Serverless Functions Made Simple digest: f7b37f2571bfb0dc596e37a000ce4f29aa8346254d79fda25ad4034d6a4848da home: https://www.openfaas.com @@ -3888,7 +3914,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.0.1.tgz version: 7.0.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.984993767Z" + created: "2023-03-13T12:22:07.301740136Z" description: OpenFaaS - Serverless Functions Made Simple digest: 8c9482cc9ec00709ff3250ff640fee58c40284355e2299b04f5e8126bc048138 home: https://www.openfaas.com @@ -3913,7 +3939,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.0.0.tgz version: 7.0.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.984092075Z" + created: "2023-03-13T12:22:07.300216555Z" description: OpenFaaS - Serverless Functions Made Simple digest: 0e202802844d3575a74e317718d0b464144dc0f1266cbbd360c540b93f2ca306 home: https://www.openfaas.com @@ -3938,7 +3964,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.2.3.tgz version: 6.2.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.98313773Z" + created: "2023-03-13T12:22:07.298757186Z" description: OpenFaaS - Serverless Functions Made Simple digest: cc5e7a0e79a7929d8539a7eff0868bbc33fb2b178dd6ccb4479067f3ed57029f home: https://www.openfaas.com @@ -3963,7 +3989,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.2.2.tgz version: 6.2.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.981316144Z" + created: "2023-03-13T12:22:07.297788384Z" description: OpenFaaS - Serverless Functions Made Simple digest: fbf8035b5c7346d082e91f685fbaa7f15245bbe86ed782f3e456205056f18fc7 home: https://www.openfaas.com @@ -3988,7 +4014,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.2.1.tgz version: 6.2.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.980206584Z" + created: "2023-03-13T12:22:07.296850492Z" description: OpenFaaS - Serverless Functions Made Simple digest: 8148bd55704fdb0ee98fb4da89f65507e1fefe25771f113218abee689e17fa63 home: https://www.openfaas.com @@ -4013,7 +4039,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.2.0.tgz version: 6.2.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.97929511Z" + created: "2023-03-13T12:22:07.295810547Z" description: OpenFaaS - Serverless Functions Made Simple digest: f6c16c0741baae72090f7928b511078b315edf0298a5f51dc4b05bd337705f64 home: https://www.openfaas.com @@ -4038,7 +4064,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.6.tgz version: 6.1.6 - apiVersion: v1 - created: "2023-02-28T16:17:52.978033414Z" + created: "2023-03-13T12:22:07.29409226Z" description: OpenFaaS - Serverless Functions Made Simple digest: a2cb358daa37da91157ae4e6f1b7c6eef009bcb3255bc3ab63d3a20f4d060e71 home: https://www.openfaas.com @@ -4063,7 +4089,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.5.tgz version: 6.1.5 - apiVersion: v1 - created: "2023-02-28T16:17:52.976566991Z" + created: "2023-03-13T12:22:07.293160768Z" description: OpenFaaS - Serverless Functions Made Simple digest: 777c9a843776e9276b49c867d7beabfe103c619ec0f16f753ea04250d5c9bdd4 home: https://www.openfaas.com @@ -4088,7 +4114,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.4.tgz version: 6.1.4 - apiVersion: v1 - created: "2023-02-28T16:17:52.97542652Z" + created: "2023-03-13T12:22:07.292238157Z" description: OpenFaaS - Serverless Functions Made Simple digest: 546ba68e18d5c843b7f04a48d47b30d16ad4f4f70c861b570d71d719a9056a79 home: https://www.openfaas.com @@ -4113,7 +4139,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.3.tgz version: 6.1.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.973735308Z" + created: "2023-03-13T12:22:07.291293296Z" description: OpenFaaS - Serverless Functions Made Simple digest: 4b3ff5a6eb1582320e028b164ae87ba0a34a852095ff9a29070a273cc7b1205c home: https://www.openfaas.com @@ -4138,7 +4164,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.2.tgz version: 6.1.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.972788084Z" + created: "2023-03-13T12:22:07.289662301Z" description: OpenFaaS - Serverless Functions Made Simple digest: 7274a6ce40958c7b73dc8cb218d019644b7c3ab7308b89efb79093eb208a695e home: https://www.openfaas.com @@ -4163,7 +4189,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.1.tgz version: 6.1.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.971837379Z" + created: "2023-03-13T12:22:07.286998772Z" description: OpenFaaS - Serverless Functions Made Simple digest: 7e5ebeeb31d0a24d3c2b7118167a0d1b5bbf759f610900515787d68c3d4a71a6 home: https://www.openfaas.com @@ -4188,7 +4214,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.0.tgz version: 6.1.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.970897475Z" + created: "2023-03-13T12:22:07.285486541Z" description: OpenFaaS - Serverless Functions Made Simple digest: 92dc80552b0e09e6ddde3d2490f813ab9aad0e2804d5c95ab3f3d61513bb056b home: https://www.openfaas.com @@ -4213,7 +4239,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.0.4.tgz version: 6.0.4 - apiVersion: v1 - created: "2023-02-28T16:17:52.969076989Z" + created: "2023-03-13T12:22:07.284024872Z" description: OpenFaaS - Serverless Functions Made Simple digest: 53e87262f1e63b532045ad55081fdbedcc0fcaf74e3c4123fdc6ab00db3d765a home: https://www.openfaas.com @@ -4238,7 +4264,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.0.3.tgz version: 6.0.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.967094987Z" + created: "2023-03-13T12:22:07.282608765Z" description: OpenFaaS - Serverless Functions Made Simple digest: 2721cbfca07b105f5b89fbf7862e88962dbedad968c80dbd895fe7d5a07b4c4a home: https://www.openfaas.com @@ -4263,7 +4289,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.0.2.tgz version: 6.0.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.964586226Z" + created: "2023-03-13T12:22:07.281193117Z" description: OpenFaaS - Serverless Functions Made Simple digest: ee7d69ad9cae2b8067833749ed071f0e88efba65012963a79b23e808c649591f home: https://www.openfaas.com @@ -4286,7 +4312,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.0.1.tgz version: 6.0.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.963084471Z" + created: "2023-03-13T12:22:07.279769739Z" description: OpenFaaS - Serverless Functions Made Simple digest: 90ee77d9ea47450c93dd30a9f29e9b95e2da40faa77fd252ea9240aac2e35790 home: https://www.openfaas.com @@ -4309,7 +4335,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.0.0.tgz version: 6.0.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.961571076Z" + created: "2023-03-13T12:22:07.278258739Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2eae955e48053814cf3110a68997df327011e651be6bbcbe3be1f2b6634b6e91 home: https://www.openfaas.com @@ -4332,7 +4358,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.8.tgz version: 5.8.8 - apiVersion: v1 - created: "2023-02-28T16:17:52.960057181Z" + created: "2023-03-13T12:22:07.275987763Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b24b6a74f18aa2475fbf2cdc5528088900dd9019df5d9d26de6198b11d45f268 home: https://www.openfaas.com @@ -4355,7 +4381,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.7.tgz version: 5.8.7 - apiVersion: v1 - created: "2023-02-28T16:17:52.958532196Z" + created: "2023-03-13T12:22:07.274371349Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: dc28a1e3ea8299301fa71832256aabcba2fcf7a60603ee44527445ceb802a093 home: https://www.openfaas.com @@ -4378,7 +4404,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.6.tgz version: 5.8.6 - apiVersion: v1 - created: "2023-02-28T16:17:52.957093934Z" + created: "2023-03-13T12:22:07.272980492Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 19f636821dd3e041c1a33d5d762652b110c4f61cd0410fb34dfe5395177487c4 home: https://www.openfaas.com @@ -4401,7 +4427,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.5.tgz version: 5.8.5 - apiVersion: v1 - created: "2023-02-28T16:17:52.955111671Z" + created: "2023-03-13T12:22:07.271677048Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 8919ec3b5e6d39f0c26c0be9d0c5ab12d867871fe63caa2314fadeb68f696a4d home: https://www.openfaas.com @@ -4424,7 +4450,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.4.tgz version: 5.8.4 - apiVersion: v1 - created: "2023-02-28T16:17:52.953847595Z" + created: "2023-03-13T12:22:07.270369375Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 30484e15a7eebcd990f395e753aa1ac426a116af1c05912b8cb0a1a693205043 home: https://www.openfaas.com @@ -4447,7 +4473,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.3.tgz version: 5.8.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.952651312Z" + created: "2023-03-13T12:22:07.268995468Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 395381f7a0305c3a5e2c9506d6b1eaec42c3e5725bc6d708323407a6979ffbe3 home: https://www.openfaas.com @@ -4470,7 +4496,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.2.tgz version: 5.8.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.951434317Z" + created: "2023-03-13T12:22:07.267210148Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2c9118ed71b194ee3b6069e57a3e304e358b6ce46bc8df3b313ccf19ecef5bf9 home: https://www.openfaas.com @@ -4493,7 +4519,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.1.tgz version: 5.8.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.950331067Z" + created: "2023-03-13T12:22:07.266416802Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c0a639d6143fafc36733f94cf81a08f9a13a80a6a87f3fab97726b31dbaf64e2 home: https://www.openfaas.com @@ -4516,7 +4542,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.0.tgz version: 5.8.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.949360912Z" + created: "2023-03-13T12:22:07.265581264Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 0e4bf7b6f62ca43d0fdc4ddd5153fb3615fc544be1ea587ffeadb8dcf2904303 home: https://www.openfaas.com @@ -4539,7 +4565,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.7.2.tgz version: 5.7.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.948279413Z" + created: "2023-03-13T12:22:07.264751636Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b50d7ac5e2e27c1f6ec37726653d0b33cd89306cbe8ea3c1584193698fde555d home: https://www.openfaas.com @@ -4562,7 +4588,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.7.1.tgz version: 5.7.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.946932824Z" + created: "2023-03-13T12:22:07.263944629Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2ee9d13840de3f3d4a7e2606e379d86acd33235e08e89fc565352dbb901c136f home: https://www.openfaas.com @@ -4585,7 +4611,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.7.0.tgz version: 5.7.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.946162966Z" + created: "2023-03-13T12:22:07.263101321Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bf7026cc6929d19ce333b3b8ec2003fbd87dc5e125596dfe1f32faf261ae23f9 home: https://www.openfaas.com @@ -4608,7 +4634,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.7.tgz version: 5.6.7 - apiVersion: v1 - created: "2023-02-28T16:17:52.945385698Z" + created: "2023-03-13T12:22:07.261906711Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: e4a6410e51f31d43e0c854c2c088c01fe13479e6e8f808042ba810290c48baa7 home: https://www.openfaas.com @@ -4631,7 +4657,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.6.tgz version: 5.6.6 - apiVersion: v1 - created: "2023-02-28T16:17:52.944644361Z" + created: "2023-03-13T12:22:07.26068648Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: a9702f013efed35cc01afe21455b397d6da797773c6164bd9091c07fc2c5a6cc home: https://www.openfaas.com @@ -4654,7 +4680,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.5.tgz version: 5.6.5 - apiVersion: v1 - created: "2023-02-28T16:17:52.943874273Z" + created: "2023-03-13T12:22:07.259543902Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2cda47db8d988ef759b4d515e73678425c42aa8157bd1d298ad8330a67239cb2 home: https://www.openfaas.com @@ -4677,7 +4703,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.4.tgz version: 5.6.4 - apiVersion: v1 - created: "2023-02-28T16:17:52.942805974Z" + created: "2023-03-13T12:22:07.257217204Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 5d932e61965f7683d463f48337312336e30602c969dbec4c4327b1e1f30fab09 home: https://www.openfaas.com @@ -4700,7 +4726,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.3.tgz version: 5.6.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.940576643Z" + created: "2023-03-13T12:22:07.255600829Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 6c88bd9c7b4aa6827753d6100aa633e720b4f48778bb55217f4c616f06458c11 home: https://www.openfaas.com @@ -4723,7 +4749,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.2.tgz version: 5.6.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.93857517Z" + created: "2023-03-13T12:22:07.254003646Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 3a0fe47eb80d4331000f067fc5591386808dea7de4316603a528fd0f28bcd0f8 home: https://www.openfaas.com @@ -4746,7 +4772,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.1.tgz version: 5.6.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.936267616Z" + created: "2023-03-13T12:22:07.252719853Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2def5b116b93e5ddc6022f1c79c0d51d0f085f866a308fa12753594a03820a84 home: https://www.openfaas.com @@ -4769,7 +4795,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.0.tgz version: 5.6.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.934747521Z" + created: "2023-03-13T12:22:07.251456401Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 609a386a806e285f2ae07fff3a4161ba9df26023a3bdd90f38b61a99498e39f4 home: https://www.openfaas.com @@ -4792,7 +4818,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.5.6.tgz version: 5.5.6 - apiVersion: v1 - created: "2023-02-28T16:17:52.933407373Z" + created: "2023-03-13T12:22:07.250344054Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 66f1657c8c20aed59db77fd2f9d06201b9a73fcead1c507c4fd090a74b1f67af home: https://www.openfaas.com @@ -4815,7 +4841,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.5.4.tgz version: 5.5.4 - apiVersion: v1 - created: "2023-02-28T16:17:52.932149067Z" + created: "2023-03-13T12:22:07.248552734Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 7fe32a65e4fd0ba5ae5812c133f9b5da97f6b15aa712bfe95397b752349909df home: https://www.openfaas.com @@ -4838,7 +4864,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.5.3.tgz version: 5.5.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.930932952Z" + created: "2023-03-13T12:22:07.247735866Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 72c323c15737305457e7462104f6c439e21372586bb529e56b86356b578ca21d home: https://www.openfaas.com @@ -4861,7 +4887,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.5.2.tgz version: 5.5.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.929646416Z" + created: "2023-03-13T12:22:07.24695793Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 57d597c6bbacf2ca52cba4e702af5dea2ab98c2f18430624b4d86bf1425dd772 home: https://www.openfaas.com @@ -4884,7 +4910,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.5.1.tgz version: 5.5.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.928284436Z" + created: "2023-03-13T12:22:07.245402348Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bdbb2fe4f1d446f2941a0a13decb3864f891b5224132c6eb422d57e42cea8d6b home: https://www.openfaas.com @@ -4907,7 +4933,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.5.0.tgz version: 5.5.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.926276053Z" + created: "2023-03-13T12:22:07.243874596Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: cd53e19257a7c3d41e171d5f75348b15e576f7085d5cd5f01d0cd98340faa14c home: https://www.openfaas.com @@ -4930,7 +4956,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.4.1.tgz version: 5.4.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.924844181Z" + created: "2023-03-13T12:22:07.242448429Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ba61dbc9b56ffd92425fda67caf4cf9e396e2fcf15c6df2f4317c46da31d6e38 home: https://www.openfaas.com @@ -4953,7 +4979,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.4.0.tgz version: 5.4.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.912567395Z" + created: "2023-03-13T12:22:07.230686094Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c6d41580cfabb91bc2f3cb544d18eff8f543a2e0f34725277df6fad5555bd931 home: https://www.openfaas.com @@ -4976,7 +5002,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.11.tgz version: 5.3.11 - apiVersion: v1 - created: "2023-02-28T16:17:52.911216636Z" + created: "2023-03-13T12:22:07.229227286Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 29ecc62c634105464689d5cb91159dfb04b1d0fc65ed51f7ba65dbbd8cba58f7 home: https://www.openfaas.com @@ -4999,7 +5025,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.10.tgz version: 5.3.10 - apiVersion: v1 - created: "2023-02-28T16:17:52.923473551Z" + created: "2023-03-13T12:22:07.241036231Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: f34b491b431db50a553a190ae81da9e59909d188ceca43b89b931ca7b15b0d6a home: https://www.openfaas.com @@ -5022,7 +5048,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.9.tgz version: 5.3.9 - apiVersion: v1 - created: "2023-02-28T16:17:52.92206117Z" + created: "2023-03-13T12:22:07.239627484Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 31948e7bc549fae977ff4d5c1df582718f69376c73b3dbd8b0d145a299609aa4 home: https://www.openfaas.com @@ -5045,7 +5071,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.8.tgz version: 5.3.8 - apiVersion: v1 - created: "2023-02-28T16:17:52.920697861Z" + created: "2023-03-13T12:22:07.238172776Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: dc790dd7ef8feb928a9c6709d1d47759494fba54e05e1e9b66e83cfb7f9816d8 home: https://www.openfaas.com @@ -5068,7 +5094,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.7.tgz version: 5.3.7 - apiVersion: v1 - created: "2023-02-28T16:17:52.919340901Z" + created: "2023-03-13T12:22:07.236295133Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 259794d738c13144bf9d4db1786b72571eda241bf07b619d5c6f77c1e54d7d98 home: https://www.openfaas.com @@ -5091,7 +5117,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.6.tgz version: 5.3.6 - apiVersion: v1 - created: "2023-02-28T16:17:52.917893068Z" + created: "2023-03-13T12:22:07.235200216Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 16d056eb463f740b65a2a8d67f2a1aa9f7cd7a8057e670890a1a0610cc0ec593 home: https://www.openfaas.com @@ -5114,7 +5140,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.5.tgz version: 5.3.5 - apiVersion: v1 - created: "2023-02-28T16:17:52.916313781Z" + created: "2023-03-13T12:22:07.234103339Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: baf371944c011ff441ac95c062122427b4d22be915d13b01429e7a010dee7d76 home: https://www.openfaas.com @@ -5137,7 +5163,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.4.tgz version: 5.3.4 - apiVersion: v1 - created: "2023-02-28T16:17:52.915050035Z" + created: "2023-03-13T12:22:07.232967961Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: fb2536df55a163efb68d10bc68c5deaca1615bc814f5a6c3da364e77fcf13a41 home: https://www.openfaas.com @@ -5160,7 +5186,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.3.tgz version: 5.3.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.913947315Z" + created: "2023-03-13T12:22:07.231838143Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 5859c2ca0ec6aba463fa216fd8a593710969c44fb23052ba8fc424ab5b23938d home: https://www.openfaas.com @@ -5183,7 +5209,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.2.tgz version: 5.3.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.909824875Z" + created: "2023-03-13T12:22:07.227329202Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 61e780c469fc9404ce183b543b8d622328903a393750d7cabfe8d941fb87d316 home: https://www.openfaas.com @@ -5206,7 +5232,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.1.tgz version: 5.3.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.908436615Z" + created: "2023-03-13T12:22:07.226283537Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 1ebf5b8e4e6c2038d2ff7b4510605a4ce1880e7e721531d1524f805519de5a67 home: https://www.openfaas.com @@ -5231,7 +5257,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.2.2.tgz version: 5.2.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.907069785Z" + created: "2023-03-13T12:22:07.22486179Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ccc8469e3e0d86665345a2708b0b3fce1c22aaafb624909e6282ad5628d73f59 home: https://www.openfaas.com @@ -5256,7 +5282,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.2.1.tgz version: 5.2.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.905645763Z" + created: "2023-03-13T12:22:07.223463463Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 61fb1f1117ce10c2dda87402206b2b046885627d43c1fc90d0709d945b2b8919 home: https://www.openfaas.com @@ -5281,7 +5307,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.2.0.tgz version: 5.2.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.903698892Z" + created: "2023-03-13T12:22:07.222035275Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: e70ecd66b98d9b9ef915c0a0c6bbf76fdb77687fec9886a3f1f75234163c9698 home: https://www.openfaas.com @@ -5306,7 +5332,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.1.5.tgz version: 5.1.5 - apiVersion: v1 - created: "2023-02-28T16:17:52.902883843Z" + created: "2023-03-13T12:22:07.220679379Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: f3629d7aabbefce5d0045160e859c7a95bcc0cc28333fb226097e559790654a0 home: https://www.openfaas.com @@ -5331,7 +5357,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.1.4.tgz version: 5.1.4 - apiVersion: v1 - created: "2023-02-28T16:17:52.901843635Z" + created: "2023-03-13T12:22:07.219327474Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 609f4ecf6cb80601dcc55ddc389fc25315526da5bda521834fd49564304f9698 home: https://www.openfaas.com @@ -5356,7 +5382,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.1.3.tgz version: 5.1.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.900801987Z" + created: "2023-03-13T12:22:07.217946977Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 42ed71363397c2c45a1476da33c8cea195b473574d830c70431223dc35279f1f home: https://www.openfaas.com @@ -5381,7 +5407,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.1.2.tgz version: 5.1.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.899880434Z" + created: "2023-03-13T12:22:07.21653485Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 49516bf0c5940ec8e9317a4af4d0b0fc8223d74f605936ffaea8fed9e85da48a home: https://www.openfaas.com @@ -5406,7 +5432,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.1.1.tgz version: 5.1.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.898965021Z" + created: "2023-03-13T12:22:07.214523763Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 0650d10307bfe350e5e07603f0bf3e8dff8f39b4bdb08344dddb9e25bc4d1bdd home: https://www.openfaas.com @@ -5431,7 +5457,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.1.0.tgz version: 5.1.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.898153691Z" + created: "2023-03-13T12:22:07.213147687Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 5369f5b2927b4d7481b66667d07b260792e65eb8b36623911ee889c9612a9cb1 home: https://www.openfaas.com @@ -5456,7 +5482,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.0.1.tgz version: 5.0.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.897280979Z" + created: "2023-03-13T12:22:07.211813512Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: fbd1761f0c9337bfdb25d55f275490a8e7213c0c9076f640a15cb6c284719b3b home: https://www.openfaas.com @@ -5481,7 +5507,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.0.0.tgz version: 5.0.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.895886989Z" + created: "2023-03-13T12:22:07.210445476Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b2d6576eeba77f691402c2614947e97234f04c8b6425fb1342c7fba9f2ea2661 home: https://www.openfaas.com @@ -5506,7 +5532,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.8.2.tgz version: 4.8.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.895171873Z" + created: "2023-03-13T12:22:07.209105441Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 8fca83fc2f0627c72dcfc825f83e54838402f4e87cb37da06e133d0ca040a5fd home: https://www.openfaas.com @@ -5531,7 +5557,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.8.1.tgz version: 4.8.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.8942719Z" + created: "2023-03-13T12:22:07.207789597Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: f873a01735eaf2db837772eb170217df47da04b0369f8c79b577833423984a98 home: https://www.openfaas.com @@ -5556,7 +5582,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.8.0.tgz version: 4.8.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.89291231Z" + created: "2023-03-13T12:22:07.206494634Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 9edf338218af0110a938525c9e1e5bd93e448768bd643e2a836d26405e36144e home: https://www.openfaas.com @@ -5581,7 +5607,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.7.4.tgz version: 4.7.4 - apiVersion: v1 - created: "2023-02-28T16:17:52.89152436Z" + created: "2023-03-13T12:22:07.205509181Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ca70d59f7e0cc2ffc0983cfd7dd21fbb462ae63c57f9588a5bd61ac5bfe8eb3f home: https://www.openfaas.com @@ -5606,7 +5632,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.7.3.tgz version: 4.7.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.890299385Z" + created: "2023-03-13T12:22:07.204625691Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 4130462a951d5b0979ed5d15d2dd60d8d6c08e5f68e6f600b47606ad29c54ebd home: https://www.openfaas.com @@ -5631,7 +5657,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.7.2.tgz version: 4.7.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.889067851Z" + created: "2023-03-13T12:22:07.203222634Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 29caf942ddc24aef3840425ff916549a15ea1806071b475395092bbdf4cceefc home: https://www.openfaas.com @@ -5656,7 +5682,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.7.1.tgz version: 4.7.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.887809755Z" + created: "2023-03-13T12:22:07.202357796Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: a4fb0e6707fd64fc3f3d964c612edf67b52d03eeceec7e01246c82f832a64cf9 home: https://www.openfaas.com @@ -5681,7 +5707,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.7.0.tgz version: 4.7.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.88656412Z" + created: "2023-03-13T12:22:07.20131394Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: e43f996bdd7da5e79220dd7e03de477706b24e717235e3462d0fc0bc062c6592 home: https://www.openfaas.com @@ -5706,7 +5732,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.6.4.tgz version: 4.6.4 - apiVersion: v1 - created: "2023-02-28T16:17:52.885210631Z" + created: "2023-03-13T12:22:07.200310277Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: fc1fcfac0669f4922458d25fea8a57d416615d001f5d31f481d71d94ad3c1ac9 home: https://www.openfaas.com @@ -5731,7 +5757,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.6.3.tgz version: 4.6.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.883345103Z" + created: "2023-03-13T12:22:07.199272282Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: beafa0f247e1934e6dab208979831d762df18b2b8eb3c2afc9e44090d3d63328 home: https://www.openfaas.com @@ -5756,7 +5782,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.6.2.tgz version: 4.6.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.882395208Z" + created: "2023-03-13T12:22:07.198266048Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bdccac3babaf5c0f063c22093916276d4e2a27bdc28df27f14d79ebe89d6ecda home: https://www.openfaas.com @@ -5781,7 +5807,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.6.1.tgz version: 4.6.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.881448234Z" + created: "2023-03-13T12:22:07.197260544Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 1ec994bfe542a70904a3700922435aae5e734f1c349a8ec6f311b848c0eba3d4 home: https://www.openfaas.com @@ -5806,7 +5832,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.6.0.tgz version: 4.6.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.880503409Z" + created: "2023-03-13T12:22:07.196255331Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: d2e815e64da306d92944ae288477a2c0add9b040a3357b132f1f2c1ec90f8445 home: https://www.openfaas.com @@ -5831,7 +5857,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.5.0.tgz version: 4.5.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.879559885Z" + created: "2023-03-13T12:22:07.195164764Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c958a207e5bd22026e6e60a1382892d221d458e719fe19ebb10e32debdc2c7db home: https://www.openfaas.com @@ -5856,7 +5882,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.4.1.tgz version: 4.4.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.878645272Z" + created: "2023-03-13T12:22:07.194024416Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 16ae856a8cbb85997f4117249222b9617fd3a3160e178a520d2a9432752b8074 home: https://www.openfaas.com @@ -5881,7 +5907,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.4.0.tgz version: 4.4.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.877677326Z" + created: "2023-03-13T12:22:07.192446643Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bf4f279e9863d52a47fa349444853d5852570b15fae20d0b288dc4e6f1bfc711 home: https://www.openfaas.com @@ -5906,7 +5932,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.3.5.tgz version: 4.3.5 - apiVersion: v1 - created: "2023-02-28T16:17:52.87694782Z" + created: "2023-03-13T12:22:07.191843453Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: fb1c23263188eb6b578b63357ec346b28964138b37b1b74f1c264d8c89b1f9a8 home: https://www.openfaas.com @@ -5931,7 +5957,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.3.4.tgz version: 4.3.4 - apiVersion: v1 - created: "2023-02-28T16:17:52.876305467Z" + created: "2023-03-13T12:22:07.191361257Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 4a84e17d3faade9382517258582e40ec74ac44259b78f0eb0c466fa0f2e0e122 home: https://www.openfaas.com @@ -5956,7 +5982,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.3.3.tgz version: 4.3.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.875061222Z" + created: "2023-03-13T12:22:07.190792738Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 305d7f3752360d4bd2e8faf54930e0f56be16b32dc8278afc5bf45ca0d07a94f home: https://www.openfaas.com @@ -5981,7 +6007,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.3.2.tgz version: 4.3.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.874410678Z" + created: "2023-03-13T12:22:07.190011592Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ca9cc6c463c8dbf851f9a3af07cc7ad82c6bb0cb154c0cfe1af35574c5f57f2d home: https://www.openfaas.com @@ -6006,7 +6032,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.3.1.tgz version: 4.3.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.873875869Z" + created: "2023-03-13T12:22:07.189238786Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 89f1706dd6d37580958bccfc7deaa3c18b7567501d02e390585fb8633c5c3bfa home: https://www.openfaas.com @@ -6031,7 +6057,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.3.0.tgz version: 4.3.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.87336438Z" + created: "2023-03-13T12:22:07.18845799Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b9c635c702bfe5b87de7fc5026e73cfb8dba34368fae8ad637b3ac9120ea9e36 home: https://www.openfaas.com @@ -6056,7 +6082,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.2.0.tgz version: 4.2.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.872858242Z" + created: "2023-03-13T12:22:07.187642922Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 334d5c9fccb83830c0db2c1c930c5725d10b4e5c4051d88e3ac32509bc25c462 home: https://www.openfaas.com @@ -6081,7 +6107,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.1.1.tgz version: 4.1.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.87227052Z" + created: "2023-03-13T12:22:07.186816734Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 1d90e4836620979c4b0ad0ed35b73e6b9df4fffff028aa4349103bc498b4fa81 home: https://www.openfaas.com @@ -6106,7 +6132,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.1.0.tgz version: 4.1.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.871770982Z" + created: "2023-03-13T12:22:07.185997577Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bb69e13f76f0f9f6bc62612e52e16c9ca073590928ecc73bf05506970fbc44c2 home: https://www.openfaas.com @@ -6131,7 +6157,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.0.0.tgz version: 4.0.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.871277044Z" + created: "2023-03-13T12:22:07.185292123Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 7a8ad9756c3b243c33f37aa43bea1ac32360804350b9e21fa32f3c96fcf4808e home: https://www.openfaas.com @@ -6156,7 +6182,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-3.3.1.tgz version: 3.3.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.870770316Z" + created: "2023-03-13T12:22:07.184463645Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 3e9cf71bffb7c44aaa0c876f3b5adcf46e7b338c759e337e9464a9e2ab9c102e home: https://www.openfaas.com @@ -6181,7 +6207,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-3.3.0.tgz version: 3.3.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.869960726Z" + created: "2023-03-13T12:22:07.182946265Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 5b5a05c50da7dbd313f734b2194148b0c65563e6ed44c41881e4fb64ea973780 home: https://www.openfaas.com @@ -6206,7 +6232,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-3.2.3.tgz version: 3.2.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.869283912Z" + created: "2023-03-13T12:22:07.182185369Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bf9f7e610cb842d394589d3f43ac223d9e3b6a9d34d6eb5e708159c7b1a4cb12 home: https://www.openfaas.com @@ -6231,7 +6257,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-3.2.2.tgz version: 3.2.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.86869325Z" + created: "2023-03-13T12:22:07.181447024Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ac4bb202a70d5abc58c667a3662b749b8998aaa66eb31dfcaac202f148fc9fe1 home: https://www.openfaas.com @@ -6256,7 +6282,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-3.2.0.tgz version: 3.2.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.868068998Z" + created: "2023-03-13T12:22:07.18072732Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 9af11f0f8b5567676233ea779435d85b389bf19f7b6be2753b8cdee6fcbb5e09 home: https://www.openfaas.com @@ -6281,7 +6307,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-3.0.0.tgz version: 3.0.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.866938607Z" + created: "2023-03-13T12:22:07.180010726Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ebb50d8e3acc4ac6a5637c81b5c4bf791ba3b69556fb177e5f711f069f354be0 home: https://www.openfaas.com @@ -6306,7 +6332,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-2.1.4.tgz version: 2.1.4 - apiVersion: v1 - created: "2023-02-28T16:17:52.866310434Z" + created: "2023-03-13T12:22:07.179297393Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bb1a10058c6cb2d42246ef88ac0118c3b8b67e7f622d891b2605c898da2759ef home: https://www.openfaas.com @@ -6331,7 +6357,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-2.1.3.tgz version: 2.1.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.865552446Z" + created: "2023-03-13T12:22:07.178575058Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 9b85946a5153725578a40b06199127d9595b3ed9c36cabaca7990b4a23578187 home: https://www.openfaas.com @@ -6356,7 +6382,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-2.1.2.tgz version: 2.1.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.86483728Z" + created: "2023-03-13T12:22:07.177837494Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 3ea4d0c129cb4296deb61c44c325f15ddb0bce9e95d42de5903acccfab9728f5 home: https://www.openfaas.com @@ -6381,7 +6407,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-2.1.1.tgz version: 2.1.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.863950688Z" + created: "2023-03-13T12:22:07.1771263Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: d414ec291117ec3d2d3c88eee79bcfcb4777ffe1a17ece2150ebe0c959630a17 home: https://www.openfaas.com @@ -6406,7 +6432,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-2.1.0.tgz version: 2.1.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.863042395Z" + created: "2023-03-13T12:22:07.176485198Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ea9449ae717c8e621e5d8c536050691fcb3c593991128ebe656d3e1ba50327f0 home: https://www.openfaas.com @@ -6431,7 +6457,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-2.0.0.tgz version: 2.0.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.718502851Z" + created: "2023-03-13T12:22:07.029546474Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 681ee9cb041db8204863bc16156f6ad9ee410e188a318223ce8d347021583da9 home: https://www.openfaas.com @@ -6456,7 +6482,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.9.1.tgz version: 1.9.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.717573437Z" + created: "2023-03-13T12:22:07.028811009Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c086269fed6b434bb06bbd1f8ad5a5255c71519044d3043d023b3f5f3720dc37 home: https://www.openfaas.com @@ -6481,7 +6507,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.8.1.tgz version: 1.8.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.716664874Z" + created: "2023-03-13T12:22:07.028094805Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bc5ddaf593348ae9fce336a340c1c283ebaea380f253f7400af83d102aab1154 home: https://www.openfaas.com @@ -6506,7 +6532,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.8.0.tgz version: 1.8.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.715632016Z" + created: "2023-03-13T12:22:07.027402222Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: dcc1c3cee2f005abce4136eda6bd33755e43534f3f6b02c5d9834d6b4d18cd70 home: https://www.openfaas.com @@ -6529,7 +6555,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.7.1.tgz version: 1.7.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.714708023Z" + created: "2023-03-13T12:22:07.026700998Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c12d29315a6d69c954b64141fa3f91c7c524573e79b263cb3c5ea0aea6c8884e home: https://www.openfaas.com @@ -6552,7 +6578,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.7.0.tgz version: 1.7.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.713211648Z" + created: "2023-03-13T12:22:07.025979594Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2295d3256256fec9d4c22c51bc99bbb6476fcb69dd2e98f990b793323be35bbc home: https://www.openfaas.com @@ -6575,7 +6601,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.6.2.tgz version: 1.6.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.71270049Z" + created: "2023-03-13T12:22:07.025280971Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 96c42df1fcea981fb108f2366a3685dd27cc26661aa8bb18f4cf529b9f179d32 home: https://www.openfaas.com @@ -6598,7 +6624,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.6.1.tgz version: 1.6.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.712250134Z" + created: "2023-03-13T12:22:07.024618879Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 375d873875b0f0cb8c6b6eb5e9de3dbc7ba2d30fcd76bc85d63ecf67213107b8 home: https://www.openfaas.com @@ -6621,7 +6647,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.6.0.tgz version: 1.6.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.711827838Z" + created: "2023-03-13T12:22:07.023951866Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 916494e9852895abb6e8190bbec49d1785f2a0f2f4042df23796fa7d9c188bf2 home: https://www.openfaas.com @@ -6644,7 +6670,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.5.0.tgz version: 1.5.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.711365252Z" + created: "2023-03-13T12:22:07.023265524Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 050281112653d480395fedd0f8dd8c838e590937bfe19514b7ed0a83ac81a09e home: https://www.openfaas.com @@ -6667,7 +6693,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.4.4.tgz version: 1.4.4 - apiVersion: v1 - created: "2023-02-28T16:17:52.710956867Z" + created: "2023-03-13T12:22:07.022632052Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c53e92aff0b0a0221b046da0edb0b041173b04c9994e6b06f4c87b069a6c9857 home: https://www.openfaas.com @@ -6690,7 +6716,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.4.3.tgz version: 1.4.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.710356795Z" + created: "2023-03-13T12:22:07.022098065Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: d968c2a45bbd51d882634cb19a0d49fd09d6eaac80993dee1d1b84641b8564d7 home: https://www.openfaas.com @@ -6713,7 +6739,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.3.3.tgz version: 1.3.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.709589877Z" + created: "2023-03-13T12:22:07.021029629Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 237f21453d94363c77eb445cd428322be3cbdbe08e6ea3a5f555fa7fd9695fb1 home: https://www.openfaas.com @@ -6736,7 +6762,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.3.2.tgz version: 1.3.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.708881281Z" + created: "2023-03-13T12:22:07.02017623Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 69f2a54c60acb5f873d98dec801a1bb374a143e307198dd333b3eecb86a3fd0e home: https://www.openfaas.com @@ -6759,7 +6785,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.3.1.tgz version: 1.3.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.708222317Z" + created: "2023-03-13T12:22:07.019497087Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 54a9abc4c087fd5aa62d4c9b41e6939ced012cf42c439b31929f2ed0727263a8 home: https://www.openfaas.com @@ -6782,7 +6808,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.3.0.tgz version: 1.3.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.707580814Z" + created: "2023-03-13T12:22:07.018808264Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2954703f117c665363786ea5d2a83d27f1f6db6f4fa830534d0acb665f18ff03 home: https://www.openfaas.com @@ -6805,7 +6831,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.9.tgz version: 1.2.9 - apiVersion: v1 - created: "2023-02-28T16:17:52.70692723Z" + created: "2023-03-13T12:22:07.018120401Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b7f55e0fe1040f7fff93ad1532632855245dd2800b9407f774afbad6a26de134 home: https://www.openfaas.com @@ -6828,7 +6854,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.8.tgz version: 1.2.8 - apiVersion: v1 - created: "2023-02-28T16:17:52.706335239Z" + created: "2023-03-13T12:22:07.017420297Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: fcb1c441c1ca27f88302d872fd4e87e4d88d1aa4f51739d39f4fff17c3721fd9 home: https://www.openfaas.com @@ -6851,7 +6877,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.7.tgz version: 1.2.7 - apiVersion: v1 - created: "2023-02-28T16:17:52.705780038Z" + created: "2023-03-13T12:22:07.016695813Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 19b0a917d4825a6a40b7904e9072b9994c9ec2f9110f2871021695c5715f5cfb home: https://www.openfaas.com @@ -6874,7 +6900,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.6.tgz version: 1.2.6 - apiVersion: v1 - created: "2023-02-28T16:17:52.70472765Z" + created: "2023-03-13T12:22:07.016028431Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b91aff9318fa01e18f4cb23906647f910cb3170d06d378044ee1409268b30ee0 home: https://www.openfaas.com @@ -6897,7 +6923,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.5.tgz version: 1.2.5 - apiVersion: v1 - created: "2023-02-28T16:17:52.704212681Z" + created: "2023-03-13T12:22:07.015388279Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2318825fb60f308c172d608b769ea150c368177361c2449998c129f6cf426eba home: https://www.openfaas.com @@ -6920,7 +6946,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.4.tgz version: 1.2.4 - apiVersion: v1 - created: "2023-02-28T16:17:52.703817887Z" + created: "2023-03-13T12:22:07.014770158Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: fad03135ed925a86b5b004986bc0916b1dacce3292dfdf8c968aba45d518ce33 home: https://www.openfaas.com @@ -6943,7 +6969,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.3.tgz version: 1.2.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.703399722Z" + created: "2023-03-13T12:22:07.014080765Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 776f09ac11a7e6fcdb1b32a7ac48db0f84dccb622a1b906dff2b804ecab00fba home: https://www.openfaas.com @@ -6966,7 +6992,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.2.tgz version: 1.2.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.702984287Z" + created: "2023-03-13T12:22:07.013491846Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c6e08ca7839be38fa97c6be953cb38c5d6dc7e016a4f873aa45ff553799b3f6b home: https://www.openfaas.com @@ -6989,7 +7015,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.1.tgz version: 1.2.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.702324463Z" + created: "2023-03-13T12:22:07.012969008Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 8dcc919b9d17fafac602cf75e958e428846b4c9fc3b55d13029334cab05b8a38 home: https://www.openfaas.com @@ -7012,7 +7038,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.0.tgz version: 1.2.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.701410339Z" + created: "2023-03-13T12:22:07.011920783Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2f5ad4dd1afc2535ff11325eafc7cde1b15470352753287b16ca38075c5dfd67 home: https://www.openfaas.com @@ -7035,7 +7061,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.7.tgz version: 1.1.7 - apiVersion: v1 - created: "2023-02-28T16:17:52.700544548Z" + created: "2023-03-13T12:22:07.01151307Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 724871c9d312638c03796e092460d0979bf0e3629610e705573e02505b294e8d home: https://www.openfaas.com @@ -7058,7 +7084,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.6.tgz version: 1.1.6 - apiVersion: v1 - created: "2023-02-28T16:17:52.699747179Z" + created: "2023-03-13T12:22:07.011113456Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c9b20f965b79e4fe13165a5fae15eeae76d45295c098bf3da0a0bf281deecf0d home: https://www.openfaas.com @@ -7081,7 +7107,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.5.tgz version: 1.1.5 - apiVersion: v1 - created: "2023-02-28T16:17:52.69893453Z" + created: "2023-03-13T12:22:07.010384822Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 9f4bf7e660d0f3ec75617c6fb1c6629460f79532d393519e8d2581d70372cbbe home: https://www.openfaas.com @@ -7104,7 +7130,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.4.tgz version: 1.1.4 - apiVersion: v1 - created: "2023-02-28T16:17:52.69811137Z" + created: "2023-03-13T12:22:07.009505423Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 14979bee23155a1340876e2024e810c0e07702911fee1f99e8efde22adefae7c home: https://www.openfaas.com @@ -7127,7 +7153,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.3.tgz version: 1.1.3 - apiVersion: v1 - created: "2023-02-28T16:17:52.69728094Z" + created: "2023-03-13T12:22:07.008709216Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: e94224cfca6954585eaacd99bb1e0edb6a2e3a6719eded9443886a11fce5221e home: https://www.openfaas.com @@ -7150,7 +7176,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.2.tgz version: 1.1.2 - apiVersion: v1 - created: "2023-02-28T16:17:52.695828217Z" + created: "2023-03-13T12:22:07.007910029Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 3d60131c5f195f2fedd3ea8d55b3054a8ca705f909adc39f836d5c6ce7ee493f home: https://www.openfaas.com @@ -7173,7 +7199,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.1.tgz version: 1.1.1 - apiVersion: v1 - created: "2023-02-28T16:17:52.695430592Z" + created: "2023-03-13T12:22:07.007132363Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 652ff06c8188502f83f0def4a4bb33a6b4b0c6d8e3a408782e875423ae42220c home: https://www.openfaas.com @@ -7196,7 +7222,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.0.tgz version: 1.1.0 - apiVersion: v1 - created: "2023-02-28T16:17:52.695041518Z" + created: "2023-03-13T12:22:07.006333356Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 8a1ebc077d40cb4e31945e57cdf69a71c5c8ebe8cff7d1c976e8e862ad9710eb home: https://www.openfaas.com @@ -7217,7 +7243,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.21.tgz version: 1.0.21 - apiVersion: v1 - created: "2023-02-28T16:17:52.694629873Z" + created: "2023-03-13T12:22:07.005530329Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 3f28fd8eb6dd411a612e4092f1d569377dcfea9b247c40357b6ca93d2633f99c home: https://www.openfaas.com @@ -7238,7 +7264,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.20.tgz version: 1.0.20 - apiVersion: v1 - created: "2023-02-28T16:17:52.693928788Z" + created: "2023-03-13T12:22:07.004820155Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 655e12161299bfe0dad9a8c76a80619a133d1b6413924b1b26bd1980c9334bb2 home: https://www.openfaas.com @@ -7259,7 +7285,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.19.tgz version: 1.0.19 - apiVersion: v1 - created: "2023-02-28T16:17:52.693247103Z" + created: "2023-03-13T12:22:07.004129142Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b5485851da4921afc87ac73d8004570cd1f17219440944b76e3d187043d46f7a home: https://www.openfaas.com @@ -7280,7 +7306,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.18.tgz version: 1.0.18 - apiVersion: v1 - created: "2023-02-28T16:17:52.692590419Z" + created: "2023-03-13T12:22:07.003512201Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 49fdd14e168a14e83c4aa61674f44b7eeeca35ed98251d5abc0aa31fdcea8858 home: https://www.openfaas.com @@ -7301,7 +7327,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.17.tgz version: 1.0.17 - apiVersion: v1 - created: "2023-02-28T16:17:52.691945015Z" + created: "2023-03-13T12:22:07.002896201Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: f8e694e8b868524bfa8fec82239becb60d0e17b9384076856df0a303012138da home: https://www.openfaas.com @@ -7322,7 +7348,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.16.tgz version: 1.0.16 - apiVersion: v1 - created: "2023-02-28T16:17:52.691350734Z" + created: "2023-03-13T12:22:07.002234538Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 8b69ee7b5de254eb8d9f2a8db2574e74e6d9dccf995e06cb9a2316b780c678ca home: https://www.openfaas.com @@ -7343,7 +7369,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.15.tgz version: 1.0.15 - apiVersion: v1 - created: "2023-02-28T16:17:52.690756532Z" + created: "2023-03-13T12:22:07.001242665Z" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: e484ee66f94d3893ab4af2159a4514dac6e072639bae6f3bbe9801ae68112f78 home: https://www.openfaas.com @@ -7365,9 +7391,9 @@ entries: version: 1.0.14 postgres-connector: - apiVersion: v1 - created: "2023-02-28T16:17:53.043708811Z" + created: "2023-03-13T12:22:07.36482536Z" description: Trigger OpenFaaS functions from PostgreSQL - digest: acc7efb98496991ed9b78d83d7c06c288886ab80e99b163a2a765d35dd9a5c08 + digest: d56ff889a8b4d4dcb43fa1f91fb80d5a80f18d8cf66a4a4e1578b0188475a71e home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -7385,7 +7411,7 @@ entries: - https://openfaas.github.io/faas-netes/postgres-connector-0.1.0.tgz version: 0.1.0 - apiVersion: v1 - created: "2023-02-28T16:17:53.043418641Z" + created: "2023-03-13T12:22:07.364596013Z" description: Trigger OpenFaaS functions from PostgreSQL digest: 25434d0b146569e4ba8ac928c74b79c22fba9537bdb812f5050d823734bfad29 home: https://www.openfaas.com @@ -7405,7 +7431,7 @@ entries: - https://openfaas.github.io/faas-netes/postgres-connector-0.0.6.tgz version: 0.0.6 - apiVersion: v1 - created: "2023-02-28T16:17:53.043170572Z" + created: "2023-03-13T12:22:07.364383375Z" description: Trigger OpenFaaS functions from PostgreSQL digest: 9d2707588e81a2ad430f2cb5c4433ad4635082623f916ce02f96234407e0b7c2 home: https://www.openfaas.com @@ -7425,7 +7451,7 @@ entries: - https://openfaas.github.io/faas-netes/postgres-connector-0.0.5.tgz version: 0.0.5 - apiVersion: v1 - created: "2023-02-28T16:17:53.042923983Z" + created: "2023-03-13T12:22:07.364167498Z" description: Trigger OpenFaaS functions from PostgreSQL digest: 537621b43d5f04ee2e5ea04716873110a2b82b2bc91d28d3f17f08a02f9259fd home: https://www.openfaas.com @@ -7445,7 +7471,7 @@ entries: - https://openfaas.github.io/faas-netes/postgres-connector-0.0.4.tgz version: 0.0.4 - apiVersion: v1 - created: "2023-02-28T16:17:53.042650353Z" + created: "2023-03-13T12:22:07.363955511Z" description: Trigger OpenFaaS functions from PostgreSQL digest: f47cd883be4d8d2d39f6b288bda6bd50673b3259eb135db931ae86a0ff90d3d4 home: https://www.openfaas.com @@ -7465,7 +7491,7 @@ entries: - https://openfaas.github.io/faas-netes/postgres-connector-0.0.3.tgz version: 0.0.3 - apiVersion: v1 - created: "2023-02-28T16:17:53.042339521Z" + created: "2023-03-13T12:22:07.363746854Z" description: Trigger OpenFaaS functions from PostgreSQL digest: ee3e01c2ff1212f7bb74a328a91744266e7c22921be50eab12a6324434cefbfb home: https://www.openfaas.com @@ -7485,7 +7511,7 @@ entries: - https://openfaas.github.io/faas-netes/postgres-connector-0.0.2.tgz version: 0.0.2 - apiVersion: v1 - created: "2023-02-28T16:17:53.041999339Z" + created: "2023-03-13T12:22:07.363538347Z" description: Trigger OpenFaaS functions from PostgreSQL digest: 06f343bee14de814495f1a2d902a2e69d4df4c4e067bd6a5a68456d4a1559814 home: https://www.openfaas.com @@ -7506,7 +7532,27 @@ entries: version: 0.0.1 pro-builder: - apiVersion: v1 - created: "2023-02-28T16:17:53.048695653Z" + created: "2023-03-13T12:22:07.369530958Z" + description: Build OpenFaaS functions via a REST API + digest: 24f04b23ee2a1e9b785bf1ffcd6edfe7d24f168e99e468153ed93e3139ca865c + home: https://www.openfaas.com + icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png + keywords: + - imagebuilder + - functionbuilder + - builder + - functions + maintainers: + - email: alex@openfaas.com + name: alexellis + name: pro-builder + sources: + - https://github.com/openfaas/faas-netes + urls: + - https://openfaas.github.io/faas-netes/pro-builder-0.4.1.tgz + version: 0.4.1 + - apiVersion: v1 + created: "2023-03-13T12:22:07.368978859Z" description: Build OpenFaaS functions via a REST API digest: 8ac362097f0814fd1e5b8dbd5cc2b2ed6db9ef4701fa9b27cf405461b34e614a home: https://www.openfaas.com @@ -7526,7 +7572,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.4.0.tgz version: 0.4.0 - apiVersion: v1 - created: "2023-02-28T16:17:53.048160853Z" + created: "2023-03-13T12:22:07.36839131Z" description: Build OpenFaaS functions via a REST API digest: c30e1bc47a5e373053f17637609358e3c6f6a4db6cd68588e9c8f4ac1ede4713 home: https://www.openfaas.com @@ -7546,7 +7592,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.9.tgz version: 0.3.9 - apiVersion: v1 - created: "2023-02-28T16:17:53.047645005Z" + created: "2023-03-13T12:22:07.36780314Z" description: Build OpenFaaS functions via a REST API digest: 350fd3d4341ab5ca5c57c098dba73ef22d5f097a443350c812ed6bffcab62d71 home: https://www.openfaas.com @@ -7566,7 +7612,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.8.tgz version: 0.3.8 - apiVersion: v1 - created: "2023-02-28T16:17:53.047122046Z" + created: "2023-03-13T12:22:07.366695233Z" description: Build OpenFaaS functions via a REST API digest: 2cde40035be1703b7a2650edca6abc42cb68a2c5d3dbae4830a553084c618ea0 home: https://www.openfaas.com @@ -7586,7 +7632,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.7.tgz version: 0.3.7 - apiVersion: v1 - created: "2023-02-28T16:17:53.046675489Z" + created: "2023-03-13T12:22:07.366417783Z" description: Build OpenFaaS functions via a REST API digest: dfd863b3af4dcb672b6cb999d96a263e20aec3330ecf90dfd4df6603a7f7c909 home: https://www.openfaas.com @@ -7606,7 +7652,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.6.tgz version: 0.3.6 - apiVersion: v1 - created: "2023-02-28T16:17:53.046084468Z" + created: "2023-03-13T12:22:07.366068322Z" description: Build OpenFaaS functions via a REST API digest: 7b96975b0140d83a9d03a8a630716adb58113dce86fd5f676f317a8b7172016a home: https://www.openfaas.com @@ -7626,7 +7672,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.5.tgz version: 0.3.5 - apiVersion: v1 - created: "2023-02-28T16:17:53.045540948Z" + created: "2023-03-13T12:22:07.36573324Z" description: Build OpenFaaS functions via a REST API digest: a50f2a8bbbbb8b40b91649fa29349d0d2f9009dba7c0fc43a91b20252f458771 home: https://www.openfaas.com @@ -7646,7 +7692,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.3.tgz version: 0.3.3 - apiVersion: v1 - created: "2023-02-28T16:17:53.045264138Z" + created: "2023-03-13T12:22:07.365502593Z" description: Build OpenFaaS functions via a REST API digest: 91a9569a561800b6385eca1008308b055e1eba0cb16159212aa883270213e711 home: https://www.openfaas.com @@ -7666,7 +7712,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.2.tgz version: 0.3.2 - apiVersion: v1 - created: "2023-02-28T16:17:53.044976717Z" + created: "2023-03-13T12:22:07.365274135Z" description: Build OpenFaaS functions via a REST API digest: b2edc6840b2a1a2da795c3201a05498b0c85819c4b1a6dd13592364d7f7d44fa home: https://www.openfaas.com @@ -7686,7 +7732,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.1.tgz version: 0.3.1 - apiVersion: v1 - created: "2023-02-28T16:17:53.044645675Z" + created: "2023-03-13T12:22:07.365051748Z" description: Build OpenFaaS functions via a REST API digest: 559ab7a218ecef5b37b29117955fed21a9ce5a51aeecf539e85ba635911e3805 home: https://www.openfaas.com @@ -7707,7 +7753,7 @@ entries: version: 0.3.0 probuilder: - apiVersion: v1 - created: "2023-02-28T16:17:53.049289745Z" + created: "2023-03-13T12:22:07.370118758Z" description: Build OpenFaaS functions via a REST API digest: f143268f50f71590b7138d7b28570b43bc1c7ead82a720110b651bcc3d66c271 home: https://www.openfaas.com @@ -7727,7 +7773,7 @@ entries: - https://openfaas.github.io/faas-netes/probuilder-0.2.0.tgz version: 0.2.0 - apiVersion: v1 - created: "2023-02-28T16:17:53.048984113Z" + created: "2023-03-13T12:22:07.369827248Z" description: Build functions via API digest: 9b23240d618cdd993bb2586e073febe3ebb357fb8cadc708685d581e58be8ef8 home: https://www.openfaas.com @@ -7746,7 +7792,26 @@ entries: version: 0.1.0 queue-worker: - apiVersion: v2 - created: "2023-02-28T16:17:53.050932434Z" + created: "2023-03-13T12:22:07.372167136Z" + description: JetStream for OpenFaaS queue-worker + digest: 5ee9d06d3eb3768c2bf20a43f831e7201e9254da423af812a108c8921393c8d7 + keywords: + - openfaas + - jetstream + - queue + - async + maintainers: + - email: alex@openfaas.com + name: alexellis + - email: han@openfaas.com + name: welteki + name: queue-worker + type: application + urls: + - https://openfaas.github.io/faas-netes/queue-worker-0.1.5.tgz + version: 0.1.5 + - apiVersion: v2 + created: "2023-03-13T12:22:07.371839495Z" description: JetStream for OpenFaaS queue-worker digest: cc986b6cdf0aba340bdb899b6ff72264f1f9a48b0bcf62f826a75ceab1069fdb keywords: @@ -7765,7 +7830,7 @@ entries: - https://openfaas.github.io/faas-netes/queue-worker-0.1.4.tgz version: 0.1.4 - apiVersion: v2 - created: "2023-02-28T16:17:53.050610883Z" + created: "2023-03-13T12:22:07.371490774Z" description: JetStream for OpenFaaS queue-worker digest: 2294220420db1faf000576c1d35e56648420e66fe37c915f16b1a1161381bab2 keywords: @@ -7784,7 +7849,7 @@ entries: - https://openfaas.github.io/faas-netes/queue-worker-0.1.3.tgz version: 0.1.3 - apiVersion: v2 - created: "2023-02-28T16:17:53.050301441Z" + created: "2023-03-13T12:22:07.371156542Z" description: JetStream for OpenFaaS queue-worker digest: df89f7957c4ad3545dc71adacaf76854e8c3d7f267e4f38632b572697dd65b6a keywords: @@ -7803,7 +7868,7 @@ entries: - https://openfaas.github.io/faas-netes/queue-worker-0.1.2.tgz version: 0.1.2 - apiVersion: v2 - created: "2023-02-28T16:17:53.049941438Z" + created: "2023-03-13T12:22:07.370823971Z" description: JetStream for OpenFaaS queue-worker digest: eabc088ca3b25089014d28c2b03183b97c472bea7d81e98bf8ca5d485d15d4d6 keywords: @@ -7822,7 +7887,7 @@ entries: - https://openfaas.github.io/faas-netes/queue-worker-0.1.1.tgz version: 0.1.1 - apiVersion: v2 - created: "2023-02-28T16:17:53.049623187Z" + created: "2023-03-13T12:22:07.37048501Z" description: JetStream for OpenFaaS queue-worker digest: e0b5a60f4d44c2b2c19987867fed6d05ae9d147b4b5c7b77b6d25609ec4c6ebf keywords: @@ -7842,9 +7907,9 @@ entries: version: 0.1.0 sns-connector: - apiVersion: v1 - created: "2023-02-28T16:17:53.052010433Z" + created: "2023-03-13T12:22:07.373284594Z" description: Invoke functions from an AWS SNS messages. - digest: 1f870360bc0de70735b8288815a88dfe1141d22f19023edbc7ae473b24ac86e5 + digest: 087c0e86849602d92300c0e5eb5bbc270ae347f87c1127272c2ea21bebc72abb home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -7863,7 +7928,7 @@ entries: - https://openfaas.github.io/faas-netes/sns-connector-0.1.2.tgz version: 0.1.2 - apiVersion: v1 - created: "2023-02-28T16:17:53.05164712Z" + created: "2023-03-13T12:22:07.372911311Z" description: Invoke functions from an AWS SNS messages. digest: ce672109ed80fd328eeb65bae64483bae14d79bf49df588e476dd3ac02166837 home: https://www.openfaas.com @@ -7884,7 +7949,7 @@ entries: - https://openfaas.github.io/faas-netes/sns-connector-0.1.1.tgz version: 0.1.1 - apiVersion: v1 - created: "2023-02-28T16:17:53.051291617Z" + created: "2023-03-13T12:22:07.372540789Z" description: Invoke functions from an AWS SNS messages. digest: 1738055881df1912aaa0bb5eb5508bf133f1f87b20b59c04feb5cb9100d2cbbb home: https://www.openfaas.com @@ -7906,9 +7971,9 @@ entries: version: 0.1.0 sqs-connector: - apiVersion: v1 - created: "2023-02-28T16:17:53.055523271Z" + created: "2023-03-13T12:22:07.375742606Z" description: Connect OpenFaaS functions to SQS topics - digest: 5858b6ca0778d93eae0d08e7ca79996d846591b3ee32ff19d4702a1ceee7e616 + digest: c40e27fdbf056a2fb83f8571a0931b06e89d3de3a2e0124204026296ea2e923b home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -7926,7 +7991,7 @@ entries: - https://openfaas.github.io/faas-netes/sqs-connector-0.2.3.tgz version: 0.2.3 - apiVersion: v1 - created: "2023-02-28T16:17:53.055135467Z" + created: "2023-03-13T12:22:07.375372944Z" description: Connect OpenFaaS functions to SQS topics digest: fa5a1bf9a223beea673e1a21af80066af5b1ffeb51cc47d001db458d5eee1d15 home: https://www.openfaas.com @@ -7946,7 +8011,7 @@ entries: - https://openfaas.github.io/faas-netes/sqs-connector-0.2.2.tgz version: 0.2.2 - apiVersion: v1 - created: "2023-02-28T16:17:53.054743132Z" + created: "2023-03-13T12:22:07.374997771Z" description: Connect OpenFaaS functions to SQS topics digest: 6d9b126365656d66ea8c9deee9b1bcd77e83fb89aff06d1ac1ccf722a9b1bd21 home: https://www.openfaas.com @@ -7966,7 +8031,7 @@ entries: - https://openfaas.github.io/faas-netes/sqs-connector-0.2.1.tgz version: 0.2.1 - apiVersion: v1 - created: "2023-02-28T16:17:53.054298866Z" + created: "2023-03-13T12:22:07.37464957Z" description: Connect OpenFaaS functions to SQS topics digest: 510aea96bff3e013fb909d7f5866ea3b97320d48963857c09996da3d5583dba6 home: https://www.openfaas.com @@ -7986,7 +8051,7 @@ entries: - https://openfaas.github.io/faas-netes/sqs-connector-0.2.0.tgz version: 0.2.0 - apiVersion: v1 - created: "2023-02-28T16:17:53.053504947Z" + created: "2023-03-13T12:22:07.374312828Z" description: Connect OpenFaaS functions to SQS topics digest: 98cef218fcc6c3ffebc9a4ce77d6e8537623208e1c0af48a5ddf0ba12406279e home: https://www.openfaas.com @@ -8006,7 +8071,7 @@ entries: - https://openfaas.github.io/faas-netes/sqs-connector-0.1.0.tgz version: 0.1.0 - apiVersion: v1 - created: "2023-02-28T16:17:53.052643676Z" + created: "2023-03-13T12:22:07.373951676Z" description: Connect OpenFaaS functions to SQS topics digest: 9024b049319bec33ae2110f292c16c52a7b068154d6fa5387c10732068f6bef3 home: https://www.openfaas.com @@ -8026,7 +8091,7 @@ entries: - https://openfaas.github.io/faas-netes/sqs-connector-0.0.4.tgz version: 0.0.4 - apiVersion: v1 - created: "2023-02-28T16:17:53.052321125Z" + created: "2023-03-13T12:22:07.373624275Z" description: Connect OpenFaaS functions to SQS topics digest: 343e4c430df3a5e83b77585c25b60da4e2507e707131bff685ae39ab59834d22 home: https://www.openfaas.com @@ -8045,4 +8110,4 @@ entries: urls: - https://openfaas.github.io/faas-netes/sqs-connector-0.0.3.tgz version: 0.0.3 -generated: "2023-02-28T16:17:52.670927252Z" +generated: "2023-03-13T12:22:06.984227635Z" diff --git a/docs/kafka-connector-0.7.3.tgz b/docs/kafka-connector-0.7.3.tgz index bf0dcddb9e9c87be7a9fd918f29069959e053fad..3d7977c9eb902803e014473e4249f83d39d213e8 100644 GIT binary patch delta 6194 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 Q0RRC1|4I={ivV;00C^!YLI3~& delta 6194 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 Q00030|GqBBZ2)ut0Jyd?B>(^b diff --git a/docs/mqtt-connector-0.4.7.tgz b/docs/mqtt-connector-0.4.7.tgz index 5ef5b9589bb8ab53c728417bbf6273cacb2d512f..7fc30b94f77eeffe143bdb827976193cac779ff5 100644 GIT binary patch delta 2867 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 R{4W3i|NklqJc0l?0088RldS*% delta 2867 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 X!lE%3G`0I_IcXwzZa$)TwMr z1I{!_L>OQUU`TT_0{l`$Ldb*FVbkvenO?06eE})kQ8;ISZ>_!YsIEhRPZ)O@pnqEU{Z+0e$p^e zGJ{JmJ6HdCL1r?;5zLIq^=L3yEEbW>QA{Y+Q6e+K5{oZI0|;s-XulxmOcVcmReOk*g-Xz& z3-k4JZBNkt=?gTd$vp6X7#&1I@@3b5jsDLmFHnC*1AnkX{|^tpd*0Rmqv7F`{(p(K z2iG$UnyjIc0$>`bs8#<`Nthrtg+j7N_TaKm$&6|Q3Y;YyVcek7Yx|VnM$k(NZDfXO#D9cFW%jGzMV?ZF_3sop8tf6m;$gp+~_DWQ5Pl5;Va zVRbxH$R7NI8eGsN{P^y|$_Pyo)EZ7N&mAF_U{-b0Wa^=Re0SlUrS%>DRpm}c-w(eZ zTFgIC%@Ux6nK?9evL!4T+fO(4(+G?z9DgA{OLYrOz|W@_PBNULAWbcIyv!Ky?KN3g zUif|rD|ZH<@O^>WxMzS2GpUv%=$#zDWR$%_&64u-?5=LCYYjG0n|8XXRwpZFeo zojyd!6t9qbWrUCSgc!+DdG3thmtP5?lL-^dEZyfn+j#yTXlwkx!7S(0pdP$=dw+d) z6`2p_)5h4f|35l8?)d+c=f_7+{{Ks~>lqcdy0k>vP|kztT$PLnE;(ACKat#;Mhn&S zw=hQcTEY|!EM)JyRsU~h$a7RWGWn;3 z0=xGA!=tYLe|LN|eA53f(LR10JcBvQMxfEytt6UdjxRFHmSlz_cs97dCl-pFeaPMJ zY34WScIRN9-CjH*C0rj;oG^iITUVM53*Cc${hb!vK;+MvtlmQOlaDzqBy===U~0gfTOw;hXW&apTpSD+_ClsLnC@ zHX`Q}P~Jv)BxM|-%OJ+RV}Hg+MPr0QTROGd`Pw+iQM-k?7OKr)HmUd-K2|&pFdG3L z#B{D}OkcYRj9xr^T^n>(yzp3B#=NGr_4d&O=86e3f!^PA|8Kh2!RE((jHGRPZb@Kc zX|2kXCp>mp-SU>Q;-NSlBj38j4z9OxLQQ`A=ki1k?!bn!)+hG!baw$-lwTI>o!kR9Ju4&Qk@B8(e z&33IEWrm6wcjDI!4S%js&6x`f98l?vM=Rk&0HApu-BzwYVshY5`yV#b)!r_!63L@R ztdat&v)|ZfH;-5QDl1Z7jrAi>rGEoL%Zm2 zmB&6Pyo2|JG>%TYFZ1VF;h5KUDR(O2rAMp7VU$1eva#z$Lx27sr2)HifIx*MoUqke z=f)C3n({2HdIw54aQ6iD$KnuNLa(Z zjWu5k=2Q**6!oC|68^WlK7!q0q#9<;U~AW6{o7SST7uA`58qcLE-3ejfOWJjD1XsX z(k;kQ%)6ZS>sKE5-xP|sz5}=%Zfh0m+(Oe9uEScUM}Kx9^kBP?xnSi+q0VJn=hq{3 z;O|Q4$Kk#i%XIm;0e+C_@}Yyc+{dHFa6KL}gi9aIloYbiH+4Q}=Qy3T)23k_WG0*R z)DY`Q=owXDSFwFpuU$8pEQGnq=|&7qReX$kg-LXhftzL$z;4Q%;!c)!@or)1ZX!Dg z#!W<)V1G9ukGYe`F5brx*)aYFg}E`ye79bfz}L%sqgHk%-%M$5Qmqf4^SgdR$I#P$V*C;=w3=>b--r zmFsO!r53yr1n$7df6>g!o?s$HVc_7f%>};^e1B~%fnM*vw(JN!K{S0U__9n!w?8@y zb4kstV@%d<9v*D~*OWU8L5!$!AqHCQov6yuYVwAN|R{H%)tHiEHs?II@2V|mHZ78Ln4+U z9e6k;ec20mjI#7|jj`kW|M2kSyN>=J9}l1M|6io-wM%@fLVw_w z^||DR0^x*;Dqn3)hp*b%ctxP9jV){MBSNkafpRTJ@JqOAu)e$g^_x&xoXSME?iN%v zz5QIty5h$VGWeE|y*;>8*tZcp)6AeIq`#(o*=}dr)yd8B=ZhNXr4)uH1`1~}CrqSZ zBgM=b&R<%T<%%UtOl#u1_aXwsw||zTb6$zD`l5C{N0&k81co||9t!UY*0;paB=?f?9J7gC804Dx=Mdz z4Ohz2A2Ee4@oNKt7UgRp%6Y8)7MTym&!@F&jq4_)uHcFDX`Pg?-(u&W{lx8x`Wi%6 zjqfVg!+D1GlXmDZoad0$pkItMPB{ats~IIfj&n_Yc-=Whd z7sgw7CLnHTb{r9M2Y;7T(G0CVRqYO5)mIMT3pG2aFIL+GK<=Qw(qP@oKf3K4)Dasm zD3807yfW5CI6G2b>uOv9kt$sJaK9segGWN_5>v6iSJDD_0B2)s%;L=eme{Ucj^WN} zTC=QFuiUz7Or&x1>J!>sZ7W;uAZ`)c@C}*i1o8Fh4;N=|PG6smPG4T1zkL($1NH0Rm{=JjEDCvE@wsC*YYe)M{q<*ejKC!gc`y`~>nR%ESv zW&y6+qe4PC-}k%bvE7jTLzXwzER|_#4ND>1sTg+4>e#eaNAl@diwJ8sY!OA*XH$vf`*VmUW zShiHS#D8I0sFvu~OZ~|Vf0#80#a(fu-haeYsG1f|YOPGVh@y-MV!PSH_7=U8`*4$^ zB~Lzhd54*tZ@wW&$SLP_!C>v>IZ}Zs6uA%JEh(dJtRq6a(mab;Glq>z{_JDZr}osI X+7eUy%eVgx00960@K&$6089V?V^T1l delta 4119 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 Ve-Qch{{a91|Njz&vfcnp007$#G@k$f diff --git a/docs/pro-builder-0.4.1.tgz b/docs/pro-builder-0.4.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..ad447f41781faa10f42a3ec0e5bc966d70835078 GIT binary patch literal 11995 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 KpDr{2S^xkB#f!rL diff --git a/docs/sqs-connector-0.2.3.tgz b/docs/sqs-connector-0.2.3.tgz index 14ded7e8dadadb5b2c49036626a4628066823b43..7c50078e563db43a532da13e04a194f883f55281 100644 GIT binary patch delta 4186 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 diff --git a/yaml/alertmanager-dep.yml b/yaml/alertmanager-dep.yml index e9f7358ff..9dfc8a0ec 100644 --- a/yaml/alertmanager-dep.yml +++ b/yaml/alertmanager-dep.yml @@ -18,7 +18,7 @@ spec: app: alertmanager annotations: sidecar.istio.io/inject: "true" - checksum/alertmanager-config: "88e522b814b351d3cf180fb11eb176f8b3c31a29e2ce6083b3fdf0928c0d59a1" + checksum/alertmanager-config: "65b318ded3606266b6ca802bdfe3562ed74cbfabfd11a6dd2b4b0c4071cc5370" spec: containers: - name: alertmanager diff --git a/yaml/gateway-dep.yml b/yaml/gateway-dep.yml index 95806ac1e..fcbb0c6ec 100644 --- a/yaml/gateway-dep.yml +++ b/yaml/gateway-dep.yml @@ -105,7 +105,7 @@ spec: requests: cpu: 50m memory: 120Mi - image: ghcr.io/openfaas/faas-netes:0.16.4 + image: ghcr.io/openfaas/faas-netes:0.16.5 imagePullPolicy: Always securityContext: readOnlyRootFilesystem: true diff --git a/yaml/prometheus-dep.yml b/yaml/prometheus-dep.yml index a8605abe9..b0083b31f 100644 --- a/yaml/prometheus-dep.yml +++ b/yaml/prometheus-dep.yml @@ -18,7 +18,7 @@ spec: app: prometheus annotations: sidecar.istio.io/inject: "true" - checksum/prometheus-config: "9386cd373c4ef968602a87e23ba2278a7643a387931796e5c8ce4ba17b2b56a1" + checksum/prometheus-config: "6ba4a6be0593b8a03dc364755c50de8cdfbf4a6602cb5564ac9832e7471448ca" spec: serviceAccountName: openfaas-prometheus containers: From 941b9a72132141a51f49248ab2ebdc411b1e6852 Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Tue, 14 Mar 2023 13:21:15 +0000 Subject: [PATCH 26/37] Enable safe handling of range limits for replicas Correct drift within limits available for community (hobbyist) users. Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- Dockerfile | 2 +- Makefile | 2 +- main.go | 2 + pkg/controller/controller.go | 1 + pkg/controller/informers.go | 85 ++++++++++++++++++++++++++++++++++++ 5 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 pkg/controller/informers.go diff --git a/Dockerfile b/Dockerfile index ed4a2e41b..adfb17b76 100644 --- a/Dockerfile +++ b/Dockerfile @@ -27,7 +27,7 @@ RUN GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build \ --ldflags "-s -w \ -X github.com/openfaas/faas-netes/version.GitCommit=${GIT_COMMIT}\ -X github.com/openfaas/faas-netes/version.Version=${VERSION}" \ - -a -installsuffix cgo -o faas-netes . + -o faas-netes . FROM --platform=${TARGETPLATFORM:-linux/amd64} alpine:3.17 as ship LABEL org.label-schema.license="MIT" \ diff --git a/Makefile b/Makefile index a20781b83..592b187b4 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,7 @@ ${CODEGEN_PKG}: $(TOOLS_DIR)/code-generator.mod @cd $(TOOLS_DIR) && go mod download -modfile=code-generator.mod local: - CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o faas-netes + CGO_ENABLED=0 GOOS=linux go build -o faas-netes build-docker: docker build \ diff --git a/main.go b/main.go index 1194348ea..c9f9c4eb8 100644 --- a/main.go +++ b/main.go @@ -15,6 +15,7 @@ import ( informers "github.com/openfaas/faas-netes/pkg/client/informers/externalversions" v1 "github.com/openfaas/faas-netes/pkg/client/informers/externalversions/openfaas/v1" "github.com/openfaas/faas-netes/pkg/config" + "github.com/openfaas/faas-netes/pkg/controller" "github.com/openfaas/faas-netes/pkg/handlers" "github.com/openfaas/faas-netes/pkg/k8s" "github.com/openfaas/faas-netes/pkg/signals" @@ -197,6 +198,7 @@ func runController(setup serverSetup) { stopCh := signals.SetupSignalHandler() operator := false listers := startInformers(setup, stopCh, operator) + controller.RegisterEventHandlers(listers.DeploymentInformer, kubeClient, config.DefaultFunctionNamespace) functionLookup := k8s.NewFunctionLookup(config.DefaultFunctionNamespace, listers.EndpointsInformer.Lister()) diff --git a/pkg/controller/controller.go b/pkg/controller/controller.go index f59915c38..749e731d2 100644 --- a/pkg/controller/controller.go +++ b/pkg/controller/controller.go @@ -368,6 +368,7 @@ func (c *Controller) handleObject(obj interface{}) { } glog.V(4).Infof("Recovered deleted object '%s' from tombstone", object.GetName()) } + glog.V(4).Infof("Processing object: %s", object.GetName()) if ownerRef := metav1.GetControllerOf(object); ownerRef != nil { // If this object is not owned by a function, we should not do anything more diff --git a/pkg/controller/informers.go b/pkg/controller/informers.go new file mode 100644 index 000000000..54af222de --- /dev/null +++ b/pkg/controller/informers.go @@ -0,0 +1,85 @@ +package controller + +import ( + "context" + "fmt" + + "github.com/openfaas/faas-netes/pkg/handlers" + appsv1 "k8s.io/api/apps/v1" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + v1apps "k8s.io/client-go/informers/apps/v1" + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/tools/cache" + "k8s.io/klog" +) + +func RegisterEventHandlers(deploymentInformer v1apps.DeploymentInformer, kubeClient *kubernetes.Clientset, namespace string) { + deploymentInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ + AddFunc: func(obj interface{}) { + deployment, ok := obj.(*appsv1.Deployment) + if !ok || deployment == nil { + return + } + if err := applyValidation(deployment, kubeClient); err != nil { + klog.Info(err) + } + }, + UpdateFunc: func(oldObj, newObj interface{}) { + deployment, ok := newObj.(*appsv1.Deployment) + if !ok || deployment == nil { + return + } + if err := applyValidation(deployment, kubeClient); err != nil { + klog.Info(err) + } + }, + }) + + list, err := deploymentInformer.Lister().Deployments(namespace).List(labels.Everything()) + if err != nil { + klog.Info(err) + return + } + + for _, deployment := range list { + if err := applyValidation(deployment, kubeClient); err != nil { + klog.Info(err) + } + } +} + +func applyValidation(deployment *appsv1.Deployment, kubeClient *kubernetes.Clientset) error { + if deployment.Spec.Replicas == nil { + return nil + } + + if _, ok := deployment.Spec.Template.Labels["faas_function"]; !ok { + return nil + } + + current := *deployment.Spec.Replicas + var target int + if current == 0 { + target = 1 + } else if current > handlers.MaxReplicas { + target = handlers.MaxReplicas + } else { + return nil + } + clone := deployment.DeepCopy() + + value := int32(target) + clone.Spec.Replicas = &value + + if _, err := kubeClient.AppsV1().Deployments(deployment.Namespace). + Update(context.Background(), clone, metav1.UpdateOptions{}); err != nil { + if errors.IsConflict(err) { + return nil + } + return fmt.Errorf("error scaling %s to %d replicas: %w", deployment.Name, value, err) + } + + return nil +} From 5faa79432bd2c0e73742c170faf502669759f62b Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Tue, 14 Mar 2023 14:25:15 +0000 Subject: [PATCH 27/37] Updates to OpenFaaS CE Chart Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- chart/openfaas/Chart.yaml | 2 +- chart/openfaas/values.yaml | 4 +- docs/cron-connector-0.6.4.tgz | Bin 2947 -> 2947 bytes docs/index.yaml | 736 ++++++++++++++++-------------- docs/kafka-connector-0.7.3.tgz | Bin 6484 -> 6484 bytes docs/mqtt-connector-0.4.7.tgz | Bin 2899 -> 2899 bytes docs/nats-connector-0.3.2.tgz | Bin 3069 -> 3068 bytes docs/openfaas-12.0.2.tgz | Bin 0 -> 33804 bytes docs/postgres-connector-0.1.0.tgz | Bin 4141 -> 4139 bytes docs/pro-builder-0.4.1.tgz | Bin 11995 -> 11994 bytes docs/queue-worker-0.1.5.tgz | Bin 3146 -> 3145 bytes docs/sns-connector-0.1.2.tgz | Bin 5019 -> 5019 bytes docs/sqs-connector-0.2.3.tgz | Bin 4207 -> 4212 bytes yaml/alertmanager-dep.yml | 2 +- yaml/gateway-dep.yml | 2 +- yaml/prometheus-dep.yml | 2 +- 16 files changed, 387 insertions(+), 361 deletions(-) create mode 100644 docs/openfaas-12.0.2.tgz diff --git a/chart/openfaas/Chart.yaml b/chart/openfaas/Chart.yaml index 05e3523a0..d85060fe9 100644 --- a/chart/openfaas/Chart.yaml +++ b/chart/openfaas/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 type: application description: OpenFaaS - Serverless Functions Made Simple name: openfaas -version: 12.0.1 +version: 12.0.2 sources: - https://github.com/openfaas/faas - https://github.com/openfaas/faas-netes diff --git a/chart/openfaas/values.yaml b/chart/openfaas/values.yaml index 4e7785581..defc66f17 100644 --- a/chart/openfaas/values.yaml +++ b/chart/openfaas/values.yaml @@ -151,7 +151,7 @@ operatorPro: image: ghcr.io/openfaasltd/faas-netes:0.2.5 faasnetes: - image: ghcr.io/openfaas/faas-netes:0.16.5 + image: ghcr.io/openfaas/faas-netes:0.16.6 imagePullPolicy: "Always" # Image pull policy for deployed functions httpProbe: true # Setting to true will use HTTP for readiness and liveness probe on function pods setNonRootUser: false # It's recommended to set this to "true", but test your images before committing to it @@ -169,7 +169,7 @@ faasnetes: cpu: "50m" operator: - image: ghcr.io/openfaas/faas-netes:0.16.5 + image: ghcr.io/openfaas/faas-netes:0.16.6 create: false resources: requests: diff --git a/docs/cron-connector-0.6.4.tgz b/docs/cron-connector-0.6.4.tgz index 51074242ab6859287d103b6d2a92409e97f59c24..c4770634188e820c5064d6bd5b693bcb6402e0ad 100644 GIT binary patch delta 2916 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 O0RR8^-E7YQIsgEB9K=ol delta 2916 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 delta 6362 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 delta 2845 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 WyKDb*?cV_a0RR8D2O%i{JOBVD62QX% diff --git a/docs/openfaas-12.0.2.tgz b/docs/openfaas-12.0.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c0fa016878841072fbf842e3ae4006b3bfbedda2 GIT binary patch literal 33804 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
  • @D+1<3s#RL<*gjnfd@5yRkuALHUTQxx2kM?LnW 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 delta 11855 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 delta 2455 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 delta 4654 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 k^Jx!ePIZ6w1?)q6XbHIz>_v)ylRa%E@hIQzSUk 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 delta 4123 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 Z6<8k2WBGfP{|x{D|Nl%VgT4St0038c3w!_o diff --git a/yaml/alertmanager-dep.yml b/yaml/alertmanager-dep.yml index 9dfc8a0ec..50c84c16d 100644 --- a/yaml/alertmanager-dep.yml +++ b/yaml/alertmanager-dep.yml @@ -18,7 +18,7 @@ spec: app: alertmanager annotations: sidecar.istio.io/inject: "true" - checksum/alertmanager-config: "65b318ded3606266b6ca802bdfe3562ed74cbfabfd11a6dd2b4b0c4071cc5370" + checksum/alertmanager-config: "75dc7de68123954d3335c1228135074b62d95220e3993a8d0571038f67b6ffd7" spec: containers: - name: alertmanager diff --git a/yaml/gateway-dep.yml b/yaml/gateway-dep.yml index fcbb0c6ec..b1ee5727d 100644 --- a/yaml/gateway-dep.yml +++ b/yaml/gateway-dep.yml @@ -105,7 +105,7 @@ spec: requests: cpu: 50m memory: 120Mi - image: ghcr.io/openfaas/faas-netes:0.16.5 + image: ghcr.io/openfaas/faas-netes:0.16.6 imagePullPolicy: Always securityContext: readOnlyRootFilesystem: true diff --git a/yaml/prometheus-dep.yml b/yaml/prometheus-dep.yml index b0083b31f..70a71375b 100644 --- a/yaml/prometheus-dep.yml +++ b/yaml/prometheus-dep.yml @@ -18,7 +18,7 @@ spec: app: prometheus annotations: sidecar.istio.io/inject: "true" - checksum/prometheus-config: "6ba4a6be0593b8a03dc364755c50de8cdfbf4a6602cb5564ac9832e7471448ca" + checksum/prometheus-config: "134634a261553daef79d649d79b207a01ed4ff2394ad60bb6a01a8435d66bf9e" spec: serviceAccountName: openfaas-prometheus containers: From 78f91b71e42953921de6ad7dfcea4b8198064c5a Mon Sep 17 00:00:00 2001 From: "Han Verstraete (OpenFaaS Ltd)" Date: Mon, 6 Feb 2023 17:37:01 +0100 Subject: [PATCH 28/37] Add maxWaiting parameter for jetstream-queue-worker Signed-off-by: Han Verstraete (OpenFaaS Ltd) --- chart/openfaas/README.md | 1 + chart/openfaas/templates/jetstream-queueworker-dep.yaml | 2 ++ chart/openfaas/values.yaml | 4 ++++ chart/queue-worker/README.md | 2 ++ chart/queue-worker/templates/deployment.yaml | 2 ++ chart/queue-worker/values.yaml | 5 +++++ 6 files changed, 16 insertions(+) diff --git a/chart/openfaas/README.md b/chart/openfaas/README.md index cedcd91a4..d6c8e4185 100644 --- a/chart/openfaas/README.md +++ b/chart/openfaas/README.md @@ -508,6 +508,7 @@ yaml) | | ----------------------- | ---------------------------------- | ---------------------------------------------------------- | | `jetstreamQueueWorker.durableName` | Durable name used by JetStream consumers | `faas-workers` | | `jetstreamQueueWorker.image` | Container image used for the queue-worker when the `queueMode` is `jetstream` | See [values.yaml](./values.yaml) | +| `jetstreamQueueWorker.maxWaiting` | Configure the max waiting pulls for the queue-worker JetStream consumer. The value should be at least max_inflight * queue_worker.replicas. Note that this value can not be updated once the consumer is created. | `512` | | `jetstreamQueueWorker.logs.debug` | Log debug messages | `false` | | `jetstreamQueueWorker.logs.format` | Set the log format, supports `console` or `json` | `console` | | `nats.channel` | The name of the NATS Streaming channel or NATS JetStream stream to use for asynchronous function invocations | `faas-request` | diff --git a/chart/openfaas/templates/jetstream-queueworker-dep.yaml b/chart/openfaas/templates/jetstream-queueworker-dep.yaml index 7e3eda5a9..ca49504c2 100644 --- a/chart/openfaas/templates/jetstream-queueworker-dep.yaml +++ b/chart/openfaas/templates/jetstream-queueworker-dep.yaml @@ -62,6 +62,8 @@ spec: value: "{{ .Values.queueWorker.ackWait }}" - name: max_inflight value: "{{ .Values.queueWorkerPro.maxInflight }}" + - name: max_waiting + value: "{{ .Values.jetstreamQueueWorker.maxWaiting }}" - name: "debug" value: "{{ .Values.jetstreamQueueWorker.logs.debug }}" - name: "log_encoding" diff --git a/chart/openfaas/values.yaml b/chart/openfaas/values.yaml index defc66f17..e8ef59d4b 100644 --- a/chart/openfaas/values.yaml +++ b/chart/openfaas/values.yaml @@ -183,6 +183,10 @@ operator: jetstreamQueueWorker: image: ghcr.io/openfaasltd/jetstream-queue-worker:0.3.6 durableName: "faas-workers" + # Configure the max waiting pulls for the queue-worker JetStream consumer. + # The value should be at least max_inflight * replicas. + # Note that this value can not be updated once the consumer is created. + maxWaiting: 512 logs: debug: false format: "console" diff --git a/chart/queue-worker/README.md b/chart/queue-worker/README.md index 398e58223..80db9f09a 100644 --- a/chart/queue-worker/README.md +++ b/chart/queue-worker/README.md @@ -33,6 +33,8 @@ helm upgrade slow-queue chart/queue-worker \ |-----------|-------------|---------| | `image` | The jetstream-queue-worker image that should be deployed | See values.yaml | | `replicas` | Number of queue-worker replicas to create | `1` | +| `maxInflight` | Control the concurrent invocations | `1` | +| `maxWaiting` | Configure the max waiting pulls for the queue-worker JetStream consumer. The value should be at least max_inflight * queue_worker.replicas. Note that this value can not be updated once the consumer is created. | `512` | | `upstreamTimeout` | Maximum duration of upstream function call | `1m` | | `maxRetryAttempts` | The amount of times to try sending a message to a function before discarding it |`10` | | `maxRetryWait` | The maximum amount of time to wait between retries | `120s` | diff --git a/chart/queue-worker/templates/deployment.yaml b/chart/queue-worker/templates/deployment.yaml index 5daf27ab4..d47daf4ac 100644 --- a/chart/queue-worker/templates/deployment.yaml +++ b/chart/queue-worker/templates/deployment.yaml @@ -57,6 +57,8 @@ spec: value: "{{ .Values.gateway.host }}:{{ .Values.gateway.port }}" - name: "max_inflight" value: "{{ .Values.maxInflight }}" + - name: max_waiting + value: "{{ .Values.maxWaiting }}" - name: "upstream_timeout" value: "{{ .Values.upstreamTimeout }}" - name: "tls_insecure" diff --git a/chart/queue-worker/values.yaml b/chart/queue-worker/values.yaml index 891825b03..dea3d7726 100644 --- a/chart/queue-worker/values.yaml +++ b/chart/queue-worker/values.yaml @@ -4,6 +4,11 @@ replicas: 1 maxInflight: 1 +# Configure the max waiting pulls for the queue-worker JetStream consumer. +# The value should be at least max_inflight * replicas. +# Note that this value can not be updated once the consumer is created. +maxWaiting: 512 + upstreamTimeout: "1m" maxRetryAttempts: "10" From 3a8b7f7fda3efeceaaf6afae302bc7157ed66b3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 15:57:18 +0000 Subject: [PATCH 29/37] Bump openfaas/license-check from 0.4.1 to 0.4.2 Bumps openfaas/license-check from 0.4.1 to 0.4.2. --- updated-dependencies: - dependency-name: openfaas/license-check dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index adfb17b76..ed23669ac 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/openfaas/license-check:0.4.1 as license-check +FROM ghcr.io/openfaas/license-check:0.4.2 as license-check FROM --platform=${BUILDPLATFORM:-linux/amd64} golang:1.19 as build From abf646dfc16989f8f831682bae806ba1db80ba1b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Mar 2023 15:57:17 +0000 Subject: [PATCH 30/37] Bump actions/setup-go from 3.5.0 to 4.0.0 Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3.5.0 to 4.0.0. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/v3.5.0...v4.0.0) --- updated-dependencies: - dependency-name: actions/setup-go dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/publish.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 4a7547aa0..c2868e9e7 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -19,7 +19,7 @@ jobs: steps: - uses: actions/checkout@master - name: Install Go - uses: actions/setup-go@v3.5.0 + uses: actions/setup-go@v4.0.0 with: go-version: 1.19.x - name: Set up QEMU From 3b9492a6d6cd8e732bf0af0b8615c121e0f023e6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Jan 2023 15:01:45 +0000 Subject: [PATCH 31/37] Bump docker/build-push-action from 3 to 4 Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3 to 4. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v3...v4) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build.yaml | 4 ++-- .github/workflows/publish.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 82ca5f2bb..e049c9c30 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -33,7 +33,7 @@ jobs: run: echo "GIT_COMMIT=$(git rev-parse HEAD)" >> $GITHUB_ENV - name: Build x86_64 container into library - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v4 with: context: . file: ./Dockerfile @@ -46,7 +46,7 @@ jobs: ghcr.io/${{ env.REPO_OWNER }}/faas-netes:${{ github.sha }} - name: Build multi-arch containers for validation only - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v4 with: context: . file: ./Dockerfile diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index c2868e9e7..e617f8689 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -49,7 +49,7 @@ jobs: - name: Push containers - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v4 with: context: . file: ./Dockerfile From f11cdb31d760d15aaa0fb34b9497e654644529fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Feb 2023 18:26:18 +0000 Subject: [PATCH 32/37] Bump azure/setup-helm from 1 to 3 Bumps [azure/setup-helm](https://github.com/azure/setup-helm) from 1 to 3. - [Release notes](https://github.com/azure/setup-helm/releases) - [Commits](https://github.com/azure/setup-helm/compare/v1...v3) --- updated-dependencies: - dependency-name: azure/setup-helm dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/helm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/helm.yaml b/.github/workflows/helm.yaml index 8fe14f3e6..1f8a45556 100644 --- a/.github/workflows/helm.yaml +++ b/.github/workflows/helm.yaml @@ -20,7 +20,7 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 - - uses: azure/setup-helm@v1 + - uses: azure/setup-helm@v3 - name: Helm Lint run: ./contrib/lint_chart.sh From cbbea2edace1f4ffff20ce999918f2ce8b588f02 Mon Sep 17 00:00:00 2001 From: "Han Verstraete (OpenFaaS Ltd)" Date: Tue, 4 Apr 2023 12:31:04 +0200 Subject: [PATCH 33/37] Update response message for invalid namespaces Signed-off-by: Han Verstraete (OpenFaaS Ltd) --- pkg/handlers/delete.go | 2 +- pkg/handlers/deploy.go | 2 +- pkg/handlers/reader.go | 2 +- pkg/handlers/replica_reader.go | 2 +- pkg/handlers/replica_updater.go | 2 +- pkg/handlers/update.go | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/handlers/delete.go b/pkg/handlers/delete.go index 04441883a..d6d0bc7e2 100644 --- a/pkg/handlers/delete.go +++ b/pkg/handlers/delete.go @@ -38,7 +38,7 @@ func MakeDeleteHandler(defaultNamespace string, clientset *kubernetes.Clientset) } if lookupNamespace != defaultNamespace { - http.Error(w, fmt.Sprintf("valid namespaces are: %s", defaultNamespace), http.StatusBadRequest) + http.Error(w, fmt.Sprintf("namespace must be: %s", defaultNamespace), http.StatusBadRequest) return } diff --git a/pkg/handlers/deploy.go b/pkg/handlers/deploy.go index 1c868951a..75b20b3cc 100644 --- a/pkg/handlers/deploy.go +++ b/pkg/handlers/deploy.go @@ -62,7 +62,7 @@ func MakeDeployHandler(functionNamespace string, factory k8s.FunctionFactory) ht } if namespace != functionNamespace { - http.Error(w, fmt.Sprintf("valid namespaces are: %s", functionNamespace), http.StatusBadRequest) + http.Error(w, fmt.Sprintf("namespace must be: %s", functionNamespace), http.StatusBadRequest) return } diff --git a/pkg/handlers/reader.go b/pkg/handlers/reader.go index 5a5164e17..dbda21979 100644 --- a/pkg/handlers/reader.go +++ b/pkg/handlers/reader.go @@ -33,7 +33,7 @@ func MakeFunctionReader(defaultNamespace string, deploymentLister v1.DeploymentL } if lookupNamespace != defaultNamespace { - http.Error(w, fmt.Sprintf("valid namespaces are: %s", defaultNamespace), http.StatusBadRequest) + http.Error(w, fmt.Sprintf("namespace must be: %s", defaultNamespace), http.StatusBadRequest) return } diff --git a/pkg/handlers/replica_reader.go b/pkg/handlers/replica_reader.go index 7ce55ec09..9163c0151 100644 --- a/pkg/handlers/replica_reader.go +++ b/pkg/handlers/replica_reader.go @@ -39,7 +39,7 @@ func MakeReplicaReader(defaultNamespace string, lister v1.DeploymentLister) http } if lookupNamespace != defaultNamespace { - http.Error(w, fmt.Sprintf("valid namespaces are: %s", defaultNamespace), http.StatusBadRequest) + http.Error(w, fmt.Sprintf("namespace must be: %s", defaultNamespace), http.StatusBadRequest) return } diff --git a/pkg/handlers/replica_updater.go b/pkg/handlers/replica_updater.go index 9685043f2..5f3a6827f 100644 --- a/pkg/handlers/replica_updater.go +++ b/pkg/handlers/replica_updater.go @@ -36,7 +36,7 @@ func MakeReplicaUpdater(defaultNamespace string, clientset *kubernetes.Clientset } if lookupNamespace != defaultNamespace { - http.Error(w, fmt.Sprintf("valid namespaces are: %s", defaultNamespace), http.StatusBadRequest) + http.Error(w, fmt.Sprintf("namespace must be: %s", defaultNamespace), http.StatusBadRequest) return } diff --git a/pkg/handlers/update.go b/pkg/handlers/update.go index 2367b5a60..0dc12759e 100644 --- a/pkg/handlers/update.go +++ b/pkg/handlers/update.go @@ -48,7 +48,7 @@ func MakeUpdateHandler(defaultNamespace string, factory k8s.FunctionFactory) htt } if lookupNamespace != defaultNamespace { - http.Error(w, fmt.Sprintf("valid namespaces are: %s", defaultNamespace), http.StatusBadRequest) + http.Error(w, fmt.Sprintf("namespace must be: %s", defaultNamespace), http.StatusBadRequest) return } From 39869bcce0e5e3cb9446c490ad0e5d4230de87b2 Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Tue, 11 Apr 2023 09:50:18 +0100 Subject: [PATCH 34/37] Update pro-builder / buildkit and faas-netes * pro-builder/buildkit are updated to resolve a security issue with buildkit/containerd/runc - updating is advised Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- chart/openfaas/Chart.yaml | 2 +- chart/openfaas/values.yaml | 10 +- chart/pro-builder/Chart.yaml | 2 +- chart/pro-builder/values.yaml | 6 +- docs/cron-connector-0.6.4.tgz | Bin 2947 -> 2947 bytes docs/index.yaml | 756 ++++++++++++++++-------------- docs/kafka-connector-0.7.3.tgz | Bin 6484 -> 6484 bytes docs/mqtt-connector-0.4.7.tgz | Bin 2899 -> 2899 bytes docs/nats-connector-0.3.2.tgz | Bin 3068 -> 3069 bytes docs/openfaas-12.0.3.tgz | Bin 0 -> 34003 bytes docs/postgres-connector-0.1.0.tgz | Bin 4139 -> 4142 bytes docs/pro-builder-0.4.2.tgz | Bin 0 -> 11994 bytes docs/queue-worker-0.1.5.tgz | Bin 3145 -> 3309 bytes docs/sns-connector-0.1.2.tgz | Bin 5019 -> 5019 bytes docs/sqs-connector-0.2.3.tgz | Bin 4212 -> 4212 bytes yaml/alertmanager-dep.yml | 2 +- yaml/gateway-dep.yml | 2 +- yaml/prometheus-dep.yml | 4 +- 18 files changed, 415 insertions(+), 369 deletions(-) create mode 100644 docs/openfaas-12.0.3.tgz create mode 100644 docs/pro-builder-0.4.2.tgz diff --git a/chart/openfaas/Chart.yaml b/chart/openfaas/Chart.yaml index d85060fe9..32bd6b6eb 100644 --- a/chart/openfaas/Chart.yaml +++ b/chart/openfaas/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 type: application description: OpenFaaS - Serverless Functions Made Simple name: openfaas -version: 12.0.2 +version: 12.0.3 sources: - https://github.com/openfaas/faas - https://github.com/openfaas/faas-netes diff --git a/chart/openfaas/values.yaml b/chart/openfaas/values.yaml index e8ef59d4b..ea5d9793b 100644 --- a/chart/openfaas/values.yaml +++ b/chart/openfaas/values.yaml @@ -145,13 +145,13 @@ gateway: successThreshold: 1 faasnetesPro: - image: ghcr.io/openfaasltd/faas-netes:0.2.5 + image: ghcr.io/openfaasltd/faas-netes:0.2.8 operatorPro: - image: ghcr.io/openfaasltd/faas-netes:0.2.5 + image: ghcr.io/openfaasltd/faas-netes:0.2.8 faasnetes: - image: ghcr.io/openfaas/faas-netes:0.16.6 + image: ghcr.io/openfaas/faas-netes:0.16.7 imagePullPolicy: "Always" # Image pull policy for deployed functions httpProbe: true # Setting to true will use HTTP for readiness and liveness probe on function pods setNonRootUser: false # It's recommended to set this to "true", but test your images before committing to it @@ -169,7 +169,7 @@ faasnetes: cpu: "50m" operator: - image: ghcr.io/openfaas/faas-netes:0.16.6 + image: ghcr.io/openfaas/faas-netes:0.16.7 create: false resources: requests: @@ -233,7 +233,7 @@ queueWorker: # monitoring and auto-scaling components # both components prometheus: - image: prom/prometheus:v2.42.0 + image: prom/prometheus:v2.43.0 create: true resources: requests: diff --git a/chart/pro-builder/Chart.yaml b/chart/pro-builder/Chart.yaml index 7a3de5f4c..946dfcf2d 100644 --- a/chart/pro-builder/Chart.yaml +++ b/chart/pro-builder/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 description: Build OpenFaaS functions via a REST API name: pro-builder -version: 0.4.1 +version: 0.4.2 sources: - https://github.com/openfaas/faas-netes home: https://www.openfaas.com diff --git a/chart/pro-builder/values.yaml b/chart/pro-builder/values.yaml index 4d74d9f30..e267abe51 100644 --- a/chart/pro-builder/values.yaml +++ b/chart/pro-builder/values.yaml @@ -3,7 +3,7 @@ # image is for the pro-builder API proBuilder: - image: ghcr.io/openfaasltd/pro-builder:0.3.6 + image: ghcr.io/openfaasltd/pro-builder:0.3.7 # Set to 0 for unlimited, or some non-zero value for a hard limit # the builder will return a HTTP 429 status code, then the client @@ -31,7 +31,7 @@ buildkit: # nodepool for the function builder pods, which is recycled often # through the use of spot instances or preemptive VMs. # - # image: moby/buildkit:v0.11.4 + # image: moby/buildkit:v0.11.5 # rootless: false # securityContext: # runAsUser: 0 @@ -41,7 +41,7 @@ buildkit: # For a rootless configuration, preferred, if the configuration # and Kernel version of your Kubernetes nodes supports it # - image: moby/buildkit:v0.11.4-rootless + image: moby/buildkit:v0.11.5-rootless rootless: true securityContext: # Needs Kubernetes >= 1.19 diff --git a/docs/cron-connector-0.6.4.tgz b/docs/cron-connector-0.6.4.tgz index c4770634188e820c5064d6bd5b693bcb6402e0ad..9668e9a64cbe4a7b4e94d5dfed264412a52eb57a 100644 GIT binary patch delta 2667 zcmV-x3Y7JO7lRj&Jb(Ld8#nUL&-^RqE4M(KZ?%&AO0htI3z8HUT$&hhnnQ6tNYw6V zmob;zkX$Lc*!Q;|NbXCkr<0t6;>;gxEg!?r3^~K$a3Uo|KaxUVWTYBAO{p@$l4ktD z*DJ%}aCm-t>i!Rh!|wm#`SJOK(dp^v?0EF(^wIFaaCAC4Ie&Qo!>@>8Ybms$>cQ}f z=jt-|Cn+>%?@(zbMF{f|iBU(2<;H!#RV+zR!Rs8wFO*)wFNKI~lZFK|DcHS3Qkh{0 zsWG_@2ZP085y%|Hj8Yv$G9xUql&WS$7eT^IT1*R#Dw4vWFt*>I8Z^i-W^|BIZBPxW zna5lva;y!Fu75Bd%bb2FFvvwhu5h`KD%K(C!>mF_`k+zGQE}Av!_p;vFf2nw`W|*h znJ|%)`kv1;fDgXalZjF%%oa|&^tf9A}6&(4p}?(P3wlnahjTcgCe zTz@#T!h|-eDE+)Cx@rjt8d%B#th5Zq0UYAOF~!JmKcFw*(9eGRMc66-$(22oDE0H^lZL&p+l=#7eBYLKAO%k`Y|9cW}v)1@KlG*ZuExuS3nxdz+oM?f1$KY%Q%-neujTm(?wAxmSEI zPN&FsF0t#^+saT|-u`zP(Sd7Fm~(sn_5QyHy>ahWoPKN5bYJeEY(4+IyML6S`0{Y@ zp7a0g^yE?J{C{+OcJKe+NomJ_X`buBd_=C8h(mZ*Zvc{^p)oboUfrF!D)0P9@LI8i z3CiKG$g{Ey=B|YMZ*7n|@QX-Qblo zq^Ov2VW;-};1boGx!Zy3RDT}R;o2Rdp~AC3r-Ls?&-QM zD5P;XiFG@CcqZp8qB?{T0nk<4#|LZdjq7D=C2zG{d*HA2-nG0Hfhvg9Y&2W=3dCE2 zye-Uq`>+zM@7cT__?kX!d>E)mcO0`;c(e_m42{}FE<5H*2ClZspl!?xjy0_Y^&sl^*W8dB_9uMYJ4KzjyjUJRO)&JfupeW|6 z(|c)`G0<_Lc&in_y<@CMqX}KNwPl@RJJLIDVzhgxcLKn>rzoSnV|&xuL$@6`-bk~v zfOW)n^USV!Obe54nt!)vRDrz>!~BAcGg$~T&gquX?X~T7Aa+)B4Rqw^S7JanqN?pb{6;`rEO_dcYn)$&XmnuEAJ3(0L|K$ z9qctn{!TNy{DO%Xg@Mtq0l8m)yx7<5{0c`NVH=FEdDUoLzct{HHQTmcyQivOnpcOl z)@Hq?`gCvl^^LvtR@6H8+b>AO9;{xr0bD~V+@ISdcg;{eH8s@h$EPo(+65Jo4}WLt`9CKokM8e(cTtYuf*ONLxYriH@~}uzfIB>yNFb-t6-`hF zr?Zg;qTkF*yQ(iT99x$Q91mM~uDh{@;%Q z*z*9Sa3d`w$WZ}j0s|5}yBuE{sgNAOQ<-H_z`LiH5HqDokbf{UaDP2~5={T42JUZF zktPHCr~1@$F=z-)X>?WOF7~a-!$2=`@-UdvEAlWfSxz4Qn;gMAs+cS^ym2dJEH|sLCm!Kxnk31NKK(oA1afH%Lbh6mPs3l58X}R8s4Uz zxqVR2q||^;Wx->ZVwu{4@m?gCSlUIO;=2V&Is58Ri+`lE89yJ(p-7sb-DDNXZ*N{Y z^J&%e$;FE*4jAl_z$PS<-mXm6-ozuR0|S%R(Di-dy1CfE=OD3meaANONIId$i5q&W zbkzfp9JFIw!O2E<4oY~vjZErn*v)Vpk|qMz+9wyv^6KMqE<5apyiwjC4~5VmIY=h0 z;9Vn=w|HeTauotBQ;q|;^fxJtOI-+I@?P6DmCA`%OOBHc?(0^|RwTsg7v)-pZ7p-> z!yC-x9Q^^;aZR3B=c9T9(JnV{iV$(60%It0@3+|_ENqTNf1-){Booa6w&8^O*8c8& Zxi9zSzT6jI{u2NI|NkYgT8#iY001BmK-d5P delta 2667 zcmV-x3Y7JO7lRj&Jb!I(8#nULYkrFP%Pr96U#%qDaf$^3T#%%=;L^m1(;SNHL85j? zyNtQyhU7}o#lFveAh}OkJvz=gD9(IgYxywz&5$!34kuDl^dl(*Mn_mENR9c ze7!Op4u@x_r|$o7IPCr(o*kb(7@eLDPe;Sik-lNh?iV)@_5~Ge3%Z>Yfr&yApf;TyeUnsqRUkVY~CJhT_Qm}i6q%y-0 zQe$!*4hD`|GOwGqX~wPq>&1kY}9ad zUxapBjtEJp!3ACZ_V$(6X}isRRju{m&%>XGgjApBN`^3_Tq7a5k|6=uG9@?h`mCei zm=G=#Z3iB~E15uy(;|TkwWbMb0=}Y}#P+&C113e_GJ%;?88ttFF7jL|qal()OO7BF ze9%%5D1WRbL{i~PKRCl|LAOVc5nahqMUQ2+8QO! z<$uDN6(+P%Md{~F(N#-G(7;j_V5Ma+4hY%d=XC7&V9MpRa_Qc_c>4U;7eN*i^1Cb` zq5>AwM5&wmSvADkZf)n)h`@|9mX~M|sK(C=3Hc5#iz!Bi`vH9cpFczJ79Cf?Ynq|X zX@qcn4Ke0iE<4bmKl|1z@NLUh{U4{ubAMDiF!^m=!9DtaJUlt+=>OTH(db_P@1lJE zJa`CmmW80vz>IM;%N(C%RxDA9Av_#hUlZGly!ez;5j#D#cOZ~6_d9YS15)kHf0`e-`G=*NJ(oPqN8$P=-?9%Vv% z!TCC7V8J+tDMFzwP7Tz7FVXH0u7B;dDquFNGOhY-?QoFLxo#+Z=NJf|9KNnC zoV6@Gl@-I?U|p%bF~D3gVP??#UiZJ(y$&@$?@e~vw%;o|u(h;SWy;&VT~@cedHdgGLAnAdC#4<#rFpIg^AWjZA`ansy#YvuhQ`!Tdv$l_s=V_b!5hUA zCMbu$BG1Y;n7c-r=b`n+t1Y$e5d?63?E?ie%cVeJ*5azJ)!H;is%`47ulr5Sc7s>W zkfLJ7g`L{>g9}u1=57bBQ-66(hii9;h6>LDoepk~$On_P}53y=!?Z0#y*H*=V-#6^J(k zc~hAC_F*Mh-?Mo=@HKtd_%KkB?l@+x@Ms%A85*^VTz1Tr3|wuyTYv52>>Rpzn25Vo z`(Z^g%czK(b+GLA28C9GDHEM5b#Jv-pR)*s#=gBWX8fc6Z8a*gms{g%RKvB$B zr}xq>W1!XR;7xoYO6%+iTnFKR5DIDhM(|}B=5IH-H9w~&?JV#?O54(^?thm1k|~?HR^B1n0GhQg zJJ@TE{GDcY`2`a(3In5I19HFqc(Je9`4x^l!ZsLR^SaTxerv!XYqo8@c28BmG_MY8 zt<8E(_37U9>l=IPt*CYGw_lKmJy^YL1Gs`xxIec^?wX-`YHFz0k59Lx+65Jo4}Xu=^M6iGhWGcsyC_F+PK`k&+-r+pd03<@A8KHb=0ILaUyNm>hw?#Cu3Tj(zc;(b=%0|0k!9?(_fdq#QNbeb1B> z%?m6c7iBt0lMe6FN?CzITiZZ=<_UhvlgJ1#2^Vz?-AGtSb@`J42_Gk1VPE0Lf@x;Z zze773DV-xwN8d76Gs1*6lyk?qr|{C(xcnfhE@_iT2_P16F7sqES%YF_k{46Xbc(SL zoDtH8r;~jNkbh@V%ve%*Ul(NVGt9^poKr#0|Ys zy6OQ)4%)G;;AEpa2PM4TL?(4M>}EI)NfUuCC5nz_f@N9D-vS$i*hZ)wwAf` z;Vouzj{bn_xF%1n^HIHlXqTHeMTj_3fiV=h_uK3d7Bel8NR3+i*gCYk&8? Z+?V@uU+#-9{|Nv9|Nr>iY|j8X000bwK4Sm? diff --git a/docs/index.yaml b/docs/index.yaml index 5f4ccc714..1a5885be8 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -2,9 +2,9 @@ apiVersion: v1 entries: cron-connector: - apiVersion: v1 - created: "2023-03-14T14:25:11.183337961Z" + created: "2023-04-11T09:50:00.218733018+01:00" description: Trigger OpenFaaS Functions with cron - digest: ddb2d676a0798b6c2567b64ab0f0d6c24e1df8ef217180b289fd28106652a7e7 + digest: ef54e97bcd247cdb64829b7db5dd4e87fe30da656aed42675c6c50e6bacef3b0 home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -23,7 +23,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.6.4.tgz version: 0.6.4 - apiVersion: v1 - created: "2023-03-14T14:25:11.183075412Z" + created: "2023-04-11T09:50:00.21850012+01:00" description: Trigger OpenFaaS Functions with cron digest: 468181706402bd3bd6db843fd1e1a206c189aa5406d8434cc2b72197b435a86e home: https://www.openfaas.com @@ -44,7 +44,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.6.3.tgz version: 0.6.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.182808363Z" + created: "2023-04-11T09:50:00.218251542+01:00" description: Trigger OpenFaaS Functions with cron digest: d44542479acd73de32f6e0d46b7c31aa0fb5818f8cb684dbc6250539528a68a5 home: https://www.openfaas.com @@ -65,7 +65,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.6.2.tgz version: 0.6.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.182560484Z" + created: "2023-04-11T09:50:00.217973052+01:00" description: Trigger OpenFaaS Functions with cron digest: 95005f07ed3e9d5809f4633df1eb62b9f26be0061471b4274df695dcb6880e90 home: https://www.openfaas.com @@ -86,7 +86,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.6.1.tgz version: 0.6.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.181898652Z" + created: "2023-04-11T09:50:00.217694043+01:00" description: Trigger OpenFaaS Functions with cron digest: 055ae8324200f1fbcbfd197143b7202b9dc28ef26c0ed25c1820a290e7d36527 home: https://www.openfaas.com @@ -107,7 +107,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.6.0.tgz version: 0.6.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.181443096Z" + created: "2023-04-11T09:50:00.216836045+01:00" description: Trigger OpenFaaS Functions with cron digest: 1215c535abc59f7b64b9985e43a5a927eca2f91437bb175e15d9de93333ffbd2 home: https://www.openfaas.com @@ -128,7 +128,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.5.3.tgz version: 0.5.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.181177207Z" + created: "2023-04-11T09:50:00.216660349+01:00" description: Trigger OpenFaaS Functions with cron digest: 6b6bbbf29f4b29587d45fec7b4ae7edc4b35aa7db97e2dfdb46eaef02fc29eb2 home: https://www.openfaas.com @@ -149,7 +149,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.5.2.tgz version: 0.5.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.181016061Z" + created: "2023-04-11T09:50:00.216494393+01:00" description: Trigger OpenFaaS Functions with cron digest: 4519834f17b3d735b027cc4852e861e01f6258910bf1d0706d723710d3e0b70b home: https://www.openfaas.com @@ -170,7 +170,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.5.1.tgz version: 0.5.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.180846396Z" + created: "2023-04-11T09:50:00.216314827+01:00" description: Trigger OpenFaaS Functions with cron digest: e049068f4ba06335414b52c66b456b8777831938df255fbd619b171fa4dd951f home: https://www.openfaas.com @@ -191,7 +191,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.5.0.tgz version: 0.5.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.18067961Z" + created: "2023-04-11T09:50:00.216133461+01:00" description: Trigger OpenFaaS Functions with cron digest: 36590b38cccce33bfdb4dd6554c237a8cb97a39053a08fc220363996e829f59f home: https://www.openfaas.com @@ -212,7 +212,7 @@ entries: - https://openfaas.github.io/faas-netes/cron-connector-0.3.2.tgz version: 0.3.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.180506754Z" + created: "2023-04-11T09:50:00.215964756+01:00" description: Trigger OpenFaaS Functions with cron digest: 16abbafe3c5d9f0b619c9c4f8e53019f88cdbc09e295925fef7002f2ec1c9b32 home: https://www.openfaas.com @@ -234,9 +234,9 @@ entries: version: 0.3.1 kafka-connector: - apiVersion: v1 - created: "2023-03-14T14:25:11.19182463Z" + created: "2023-04-11T09:50:00.227517329+01:00" description: Connect OpenFaaS functions to Kafka topics - digest: b5b46828214671d6c859b243b5b7f21f6bf9458a10735c370e9745c44f29926b + digest: 7b37d2c564a15a1d4e2d32bc91e4c3a03426982ad4160b9c77ba588882a01e38 home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -254,7 +254,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.7.3.tgz version: 0.7.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.19122799Z" + created: "2023-04-11T09:50:00.227119436+01:00" description: Connect OpenFaaS functions to Kafka topics digest: af26715a204a92bc28aa6e4a4ce198f55ca2f6b5cc2c9cb7ee26e5c223459fa5 home: https://www.openfaas.com @@ -274,7 +274,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.7.2.tgz version: 0.7.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.190624879Z" + created: "2023-04-11T09:50:00.226737863+01:00" description: Connect OpenFaaS functions to Kafka topics digest: 7bd58059000fe9ad837c4b9b24653bd7bf1d1887b553c572053bc35c78af7059 home: https://www.openfaas.com @@ -294,7 +294,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.7.1.tgz version: 0.7.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.189933836Z" + created: "2023-04-11T09:50:00.226164844+01:00" description: Connect OpenFaaS functions to Kafka topics digest: 2f63695d635e944496ed17f906b43b33b4d0bed5df4f47343485f702b02612a8 home: https://www.openfaas.com @@ -314,7 +314,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.7.0.tgz version: 0.7.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.188772816Z" + created: "2023-04-11T09:50:00.225213043+01:00" description: Connect OpenFaaS functions to Kafka topics digest: 7c1cf7e169d22dec04d7c1458fc663e976ce0b241e16b8269511ff45cb052d0b home: https://www.openfaas.com @@ -334,7 +334,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.9.tgz version: 0.6.9 - apiVersion: v1 - created: "2023-03-14T14:25:11.188408673Z" + created: "2023-04-11T09:50:00.224409716+01:00" description: Connect OpenFaaS functions to Kafka topics digest: d1897dacf5c5337cf6b6dc04409298176514f9726f01174142d09ec838b23a5b home: https://www.openfaas.com @@ -354,7 +354,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.8.tgz version: 0.6.8 - apiVersion: v1 - created: "2023-03-14T14:25:11.188051751Z" + created: "2023-04-11T09:50:00.223967901+01:00" description: Connect OpenFaaS functions to Kafka topics digest: d3c45957183c9155593a4b4c9e5ddd7cedbd9baf84481275fdf46abf07668101 home: https://www.openfaas.com @@ -374,7 +374,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.7.tgz version: 0.6.7 - apiVersion: v1 - created: "2023-03-14T14:25:11.187702859Z" + created: "2023-04-11T09:50:00.223515316+01:00" description: Connect OpenFaaS functions to Kafka topics digest: 817b0286fe4c93d3192be68a9073fb27e912884bc5afcbf45dce70ac2194f9dc home: https://www.openfaas.com @@ -394,7 +394,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.6.tgz version: 0.6.6 - apiVersion: v1 - created: "2023-03-14T14:25:11.187390279Z" + created: "2023-04-11T09:50:00.223108923+01:00" description: Connect OpenFaaS functions to Kafka topics digest: 688955bed94ac25cde9a3b2f5d5e696637e1f0d85efe156d646848cfec70bda4 home: https://www.openfaas.com @@ -414,7 +414,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.5.tgz version: 0.6.5 - apiVersion: v1 - created: "2023-03-14T14:25:11.187096549Z" + created: "2023-04-11T09:50:00.22270663+01:00" description: Connect OpenFaaS functions to Kafka topics digest: 518a08a8692fb1552c37b590126d6ab8b8ca0fa87e4b37dd6df2400d0a517635 home: https://www.openfaas.com @@ -434,7 +434,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.3.tgz version: 0.6.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.186800298Z" + created: "2023-04-11T09:50:00.222296156+01:00" description: Connect OpenFaaS functions to Kafka topics digest: 0c9cfd59867c1c7280cac6820d918a1a89057fdaa0eeb94bb2ddd31d5b0255a0 home: https://www.openfaas.com @@ -454,7 +454,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.2.tgz version: 0.6.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.186474017Z" + created: "2023-04-11T09:50:00.221868152+01:00" description: Connect OpenFaaS functions to Kafka topics digest: cfe5b1af2fec3b4de339432b697170f9e79da37ce11f1c570256f0e907ba501b home: https://www.openfaas.com @@ -474,7 +474,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.6.1.tgz version: 0.6.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.186156536Z" + created: "2023-04-11T09:50:00.22151484+01:00" description: Connect OpenFaaS functions to Kafka topics digest: f76fd6b009427b0096b266e8165fd73d5da105436a166a440e4c92f84c33f08c home: https://www.openfaas.com @@ -494,7 +494,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.5.1.tgz version: 0.5.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.185904528Z" + created: "2023-04-11T09:50:00.221268402+01:00" description: Connect OpenFaaS functions to Kafka topics digest: 833e72c75b76b3ff22aab5bb7c99c9403fe968aad8fde32b86ea1b8cba075366 home: https://www.openfaas.com @@ -513,7 +513,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.5.0.tgz version: 0.5.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.18566148Z" + created: "2023-04-11T09:50:00.221026074+01:00" description: Connect OpenFaaS functions to Kafka topics digest: d7615f9848baddf4983811e2dbe8a0119e916abd4724e1ed123c15ab33953db0 home: https://www.openfaas.com @@ -534,7 +534,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.4.3.tgz version: 0.4.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.185411511Z" + created: "2023-04-11T09:50:00.220791296+01:00" description: Connect OpenFaaS functions to Kafka topics digest: 0dbe5b6d3f8037d394de633648d0344f4cbdb767718a61cd8f5577f95282fddf home: https://www.openfaas.com @@ -555,7 +555,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.4.2.tgz version: 0.4.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.185156452Z" + created: "2023-04-11T09:50:00.220561318+01:00" description: Connect OpenFaaS functions to Kafka topics digest: 5d75cf2523d96ce7b1ddf5c57669ac75eb4efda1513c5ca3b283441fe75d6f80 home: https://www.openfaas.com @@ -576,7 +576,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.4.1.tgz version: 0.4.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.184922154Z" + created: "2023-04-11T09:50:00.22031523+01:00" description: Connect OpenFaaS functions to Kafka topics digest: ea275aecc3d5e3444f9df0d9cb697cb62a7e97a9eb524e983d1e91f654549a1f home: https://www.openfaas.com @@ -597,7 +597,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.4.0.tgz version: 0.4.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.184692927Z" + created: "2023-04-11T09:50:00.220084023+01:00" description: Connect OpenFaaS functions to Kafka topics digest: 0d323f57fa97ae54fb5061cc97cab1a424966e1bf661b53d6e351cbb7c1e770c home: https://www.openfaas.com @@ -618,7 +618,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.3.0.tgz version: 0.3.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.184473249Z" + created: "2023-04-11T09:50:00.219865045+01:00" description: Connect OpenFaaS functions to Kafka topics digest: bfea71c611212db704e971164dbaad4a863852b040d68bbfb3f425c17294911d home: https://www.openfaas.com @@ -639,7 +639,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.2.3.tgz version: 0.2.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.184248872Z" + created: "2023-04-11T09:50:00.219647928+01:00" description: Connect OpenFaaS functions to Kafka topics digest: 88c657fa02ac7a0dfc1bfd2b01a8ecae2b13582fe4e6e68a4fc0121f3a3f33d0 home: https://www.openfaas.com @@ -660,7 +660,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.2.2.tgz version: 0.2.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.184035724Z" + created: "2023-04-11T09:50:00.21941958+01:00" description: Connect OpenFaaS functions to Kafka topics digest: 369b09a454db9b1f257e0552ee0f4d6648e1548d47a509cf699da371ae556412 home: https://www.openfaas.com @@ -681,7 +681,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.1.2.tgz version: 0.1.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.183810457Z" + created: "2023-04-11T09:50:00.219186403+01:00" description: Connect OpenFaaS functions to Kafka topics digest: 2a3b78d0a1b0ded8888b425d78a567ceb37d77763fc132bd5918992f43b8592a home: https://www.openfaas.com @@ -702,7 +702,7 @@ entries: - https://openfaas.github.io/faas-netes/kafka-connector-0.1.1.tgz version: 0.1.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.183579529Z" + created: "2023-04-11T09:50:00.218958025+01:00" description: Connect OpenFaaS functions to Kafka topics digest: c745084bc749a70fdec7024f86d3d005a443ba802a68c26c937101e7bf5c942d home: https://www.openfaas.com @@ -722,9 +722,9 @@ entries: version: 0.1.0 mqtt-connector: - apiVersion: v1 - created: "2023-03-14T14:25:11.195128023Z" + created: "2023-04-11T09:50:00.230147136+01:00" description: Connect OpenFaaS functions to MQTT topics - digest: a98165acf761142d79a0ac23cfb39608d5a7b6b2c5611a63865598a50fb3d272 + digest: 6a1aa21c0d052f24c4456bda0c16cdce0fd221c50e52aefe72dfeaf4cc94cabd home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -742,7 +742,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.7.tgz version: 0.4.7 - apiVersion: v1 - created: "2023-03-14T14:25:11.19475776Z" + created: "2023-04-11T09:50:00.229852567+01:00" description: Connect OpenFaaS functions to MQTT topics digest: d51ea1b95387671eee9e0d7ec74890c897c6d0662e5b522695e84c42325301f6 home: https://www.openfaas.com @@ -762,7 +762,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.6.tgz version: 0.4.6 - apiVersion: v1 - created: "2023-03-14T14:25:11.194406208Z" + created: "2023-04-11T09:50:00.229559757+01:00" description: Connect OpenFaaS functions to MQTT topics digest: 0d36fcd2677d1e22ba9f54e90572047088aaaaf6611622bd8a82d929a0e10015 home: https://www.openfaas.com @@ -781,7 +781,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.5.tgz version: 0.4.5 - apiVersion: v1 - created: "2023-03-14T14:25:11.194040706Z" + created: "2023-04-11T09:50:00.229277318+01:00" description: Connect OpenFaaS functions to MQTT topics digest: be5789e807567682fa389c5a7e879660da5f281cfea9a3d2f25946be330f168e home: https://www.openfaas.com @@ -800,7 +800,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.4.tgz version: 0.4.4 - apiVersion: v1 - created: "2023-03-14T14:25:11.193686194Z" + created: "2023-04-11T09:50:00.228972937+01:00" description: Connect OpenFaaS functions to MQTT topics digest: a469837cda2f697a309b5512c97e0bfa536b7358b6b7b44e312877b66ae77eb2 home: https://www.openfaas.com @@ -819,7 +819,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.3.tgz version: 0.4.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.19329488Z" + created: "2023-04-11T09:50:00.228680488+01:00" description: Connect OpenFaaS functions to MQTT topics digest: 973e25a74f7e853c8bc1a85805083a17c355fc91d828236f40f48c5a4af7efaa home: https://www.openfaas.com @@ -838,7 +838,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.2.tgz version: 0.4.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.192900087Z" + created: "2023-04-11T09:50:00.228390018+01:00" description: Connect OpenFaaS functions to MQTT topics digest: f10f50fec3db6caa4953fb1f969edd3d76f3b4a88ce2e8be6bbca15b61dc67ee home: https://www.openfaas.com @@ -857,7 +857,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.1.tgz version: 0.4.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.192557305Z" + created: "2023-04-11T09:50:00.228067317+01:00" description: Connect OpenFaaS functions to MQTT topics digest: bf6f7ca50bf615474efe9a486f172d1cf5c45f296864d7b88afda4636e20f3ae home: https://www.openfaas.com @@ -876,7 +876,7 @@ entries: - https://openfaas.github.io/faas-netes/mqtt-connector-0.4.0.tgz version: 0.4.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.192213593Z" + created: "2023-04-11T09:50:00.227774518+01:00" description: Connect OpenFaaS functions to MQTT digest: 5c72894aef2b14963948c700b5a038f01faab73c430c6d4ce8daf315f72f9dfc home: https://www.openfaas.com @@ -898,9 +898,9 @@ entries: version: 0.3.1 nats-connector: - apiVersion: v1 - created: "2023-03-14T14:25:11.19679245Z" + created: "2023-04-11T09:50:00.231582804+01:00" description: Trigger OpenFaaS Functions from NATS Pub/Sub - digest: 8052a47067480419cee20017fca86adac3406227ee9faccb61ec267d55d62ce3 + digest: 7f96edc6591d6141181108ab86f6aaae9b73fd6f4bab7eda5d8a03c55b2a9da7 home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -917,7 +917,7 @@ entries: - https://openfaas.github.io/faas-netes/nats-connector-0.3.2.tgz version: 0.3.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.196462348Z" + created: "2023-04-11T09:50:00.231308395+01:00" description: Trigger OpenFaaS Functions from NATS Pub/Sub digest: 8e7019430fe29bcc9e3811130893f9745037d496e42c861a58ca0f93919db9c7 home: https://www.openfaas.com @@ -936,7 +936,7 @@ entries: - https://openfaas.github.io/faas-netes/nats-connector-0.3.1.tgz version: 0.3.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.196141827Z" + created: "2023-04-11T09:50:00.231022115+01:00" description: Trigger OpenFaaS Functions from NATS Pub/Sub digest: 828c05dfde46fcee2a86e1772db16c6d7e59b55d0cee650ba45b68043db77adc home: https://www.openfaas.com @@ -957,7 +957,7 @@ entries: - https://openfaas.github.io/faas-netes/nats-connector-0.3.0.tgz version: 0.3.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.195818496Z" + created: "2023-04-11T09:50:00.230751016+01:00" description: Connect OpenFaaS functions to nats queues digest: 47267e87084bf59736a53386ff95e7576d00a82cdc63df2e640a1923cd471ad5 home: https://www.openfaas.com @@ -978,7 +978,7 @@ entries: - https://openfaas.github.io/faas-netes/nats-connector-0.1.1.tgz version: 0.1.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.195477965Z" + created: "2023-04-11T09:50:00.230459807+01:00" description: Connect OpenFaaS functions to nats queues digest: a0bbe879f171df1f279cb1882175282a15856c418bcb9841bec09a9c7ddce073 home: https://www.openfaas.com @@ -1000,7 +1000,33 @@ entries: version: 0.1.0 openfaas: - apiVersion: v2 - created: "2023-03-14T14:25:11.371117228Z" + created: "2023-04-11T09:50:00.403607071+01:00" + description: OpenFaaS - Serverless Functions Made Simple + digest: c7eda3fcf20f5eee4438a60e39d13e45560bb466a9c11fc6fe0d71b632648849 + home: https://www.openfaas.com + icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png + keywords: + - serverless + - functions + - platform + - faas + maintainers: + - email: alex@openfaas.com + name: alexellis + - email: han@openfaas.com + name: welteki + - email: roesler.lucas@gmail.com + name: lucasroesler + name: openfaas + sources: + - https://github.com/openfaas/faas + - https://github.com/openfaas/faas-netes + type: application + urls: + - https://openfaas.github.io/faas-netes/openfaas-12.0.3.tgz + version: 12.0.3 + - apiVersion: v2 + created: "2023-04-11T09:50:00.401695357+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 3073d30073a73e71d11edcbdf17a54f6937fc363b738728f2a7dce9ae6e7ba6f home: https://www.openfaas.com @@ -1026,7 +1052,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-12.0.2.tgz version: 12.0.2 - apiVersion: v2 - created: "2023-03-14T14:25:11.369692139Z" + created: "2023-04-11T09:50:00.400105155+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: d00c732ccc65de02b0649278345342d5caee09a7da66a6f1b34a8bcc781459c4 home: https://www.openfaas.com @@ -1052,7 +1078,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-12.0.1.tgz version: 12.0.1 - apiVersion: v2 - created: "2023-03-14T14:25:11.368503169Z" + created: "2023-04-11T09:50:00.397167427+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 08477a4ace0467f6992989913d41397b839147fe6b9cd16431aee49af6a46971 home: https://www.openfaas.com @@ -1078,7 +1104,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-12.0.0.tgz version: 12.0.0 - apiVersion: v2 - created: "2023-03-14T14:25:11.350517585Z" + created: "2023-04-11T09:50:00.378086324+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 555a867f84e4a12fb2ba4d0bc14e842aef339c350a327850bfe12738bf7f77eb home: https://www.openfaas.com @@ -1104,7 +1130,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.14.tgz version: 11.1.14 - apiVersion: v2 - created: "2023-03-14T14:25:11.348526937Z" + created: "2023-04-11T09:50:00.375495278+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 4aa8ecbd5188e43a5523f1f85e65c80ca8c78abc8942de3970d8e4913a48d1c9 home: https://www.openfaas.com @@ -1130,7 +1156,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.13.tgz version: 11.1.13 - apiVersion: v2 - created: "2023-03-14T14:25:11.346450226Z" + created: "2023-04-11T09:50:00.372916483+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: ff7c1452ee4a7c29fde35829eefbf607ebbfde8ed58be883ac10bc0fd0b33e90 home: https://www.openfaas.com @@ -1156,7 +1182,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.12.tgz version: 11.1.12 - apiVersion: v2 - created: "2023-03-14T14:25:11.343725773Z" + created: "2023-04-11T09:50:00.370331967+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 0454bcd80c9a900bb6e78210a0cd8c27a6b311ce5ed280eafe9c8a45f0ea7e6d home: https://www.openfaas.com @@ -1182,7 +1208,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.11.tgz version: 11.1.11 - apiVersion: v2 - created: "2023-03-14T14:25:11.341546599Z" + created: "2023-04-11T09:50:00.367225704+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: c18b590242e5478d3a14a9296c704098b51af70a6524206fa9e150bbc49bda1b home: https://www.openfaas.com @@ -1208,7 +1234,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.10.tgz version: 11.1.10 - apiVersion: v2 - created: "2023-03-14T14:25:11.367282787Z" + created: "2023-04-11T09:50:00.394688925+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: dcd282e7ad5df5b59eef124add0a9ffc5e80b6dd0593c337f34efc8c46a94a42 home: https://www.openfaas.com @@ -1234,7 +1260,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.9.tgz version: 11.1.9 - apiVersion: v2 - created: "2023-03-14T14:25:11.365129304Z" + created: "2023-04-11T09:50:00.392085929+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 69bc798462ab1dea1d23bdb72a3cdb24a291166c5198a40f2b46c2128025d313 home: https://www.openfaas.com @@ -1260,7 +1286,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.8.tgz version: 11.1.8 - apiVersion: v2 - created: "2023-03-14T14:25:11.362592327Z" + created: "2023-04-11T09:50:00.389248995+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: ece31b993203a5c76a28be2679184ecb61c59dc01c0479f896fc4cc32982e243 home: https://www.openfaas.com @@ -1286,7 +1312,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.7.tgz version: 11.1.7 - apiVersion: v2 - created: "2023-03-14T14:25:11.360584838Z" + created: "2023-04-11T09:50:00.387463215+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 1df95350fde8e0525dc56a59278a00fd86cf6df40b183e4eb45091b461cb7f33 home: https://www.openfaas.com @@ -1312,7 +1338,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.6.tgz version: 11.1.6 - apiVersion: v2 - created: "2023-03-14T14:25:11.358678853Z" + created: "2023-04-11T09:50:00.385842792+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: bd146f496f2bf985b5354d4c1ea43a9561752d07b8db851f290eb52e1baa303f home: https://www.openfaas.com @@ -1338,7 +1364,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.5.tgz version: 11.1.5 - apiVersion: v2 - created: "2023-03-14T14:25:11.356717817Z" + created: "2023-04-11T09:50:00.38397949+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 0193ce6a6b68b17bf8a63915f53da6a73248401c89a0373e43c92cbd46c3d07b home: https://www.openfaas.com @@ -1364,7 +1390,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.4.tgz version: 11.1.4 - apiVersion: v2 - created: "2023-03-14T14:25:11.35476854Z" + created: "2023-04-11T09:50:00.382103087+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 3184c6a4a1407567860df213c65d5f318c2b89d202e342666b4da8c57f349ebe home: https://www.openfaas.com @@ -1390,7 +1416,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.3.tgz version: 11.1.3 - apiVersion: v2 - created: "2023-03-14T14:25:11.352543794Z" + created: "2023-04-11T09:50:00.380498064+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 4a3138c3dd6ec4f1b72693d232552b7072b4e2e5630ec6230d91d9d92fee24b7 home: https://www.openfaas.com @@ -1416,7 +1442,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.2.tgz version: 11.1.2 - apiVersion: v2 - created: "2023-03-14T14:25:11.339627714Z" + created: "2023-04-11T09:50:00.365196437+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 213d2eab67a345646a842296ad2870f5096fa20a8125c7ee57b1570790f9cbe9 home: https://www.openfaas.com @@ -1442,7 +1468,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.1.tgz version: 11.1.1 - apiVersion: v2 - created: "2023-03-14T14:25:11.337885144Z" + created: "2023-04-11T09:50:00.363226791+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 2c66050274c9e7cc2cdb1aabc53ecece83bf451ba44eb964fb2c5e66419ab26b home: https://www.openfaas.com @@ -1468,7 +1494,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.1.0.tgz version: 11.1.0 - apiVersion: v2 - created: "2023-03-14T14:25:11.320119108Z" + created: "2023-04-11T09:50:00.345132181+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: ee34ee874376e6495bcc677a66f081cb637c95d156f2f516bf784116f6a3c3f2 home: https://www.openfaas.com @@ -1494,7 +1520,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.11.tgz version: 11.0.11 - apiVersion: v2 - created: "2023-03-14T14:25:11.31811613Z" + created: "2023-04-11T09:50:00.34330884+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: e01fbc73ae8c914b7f8eeec96e3facf91b4ba815c42fc34d92e6ec7005046114 home: https://www.openfaas.com @@ -1520,7 +1546,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.10.tgz version: 11.0.10 - apiVersion: v2 - created: "2023-03-14T14:25:11.336105923Z" + created: "2023-04-11T09:50:00.361202324+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: acf5bcd2445619482509fa3ce0770fa4e610c4fcb0da65abed261e6409390374 home: https://www.openfaas.com @@ -1546,7 +1572,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.9.tgz version: 11.0.9 - apiVersion: v2 - created: "2023-03-14T14:25:11.334490248Z" + created: "2023-04-11T09:50:00.358811445+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 3919b1033d2027b8de16fbcc5edec6db4c4a587718d3440ec50573d42dcb1776 home: https://www.openfaas.com @@ -1572,7 +1598,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.8.tgz version: 11.0.8 - apiVersion: v2 - created: "2023-03-14T14:25:11.332623624Z" + created: "2023-04-11T09:50:00.356761997+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 941730bbe823d5d8434f9fc6905c8538b9b786e3872c842826afc3c680bd79d0 home: https://www.openfaas.com @@ -1598,7 +1624,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.7.tgz version: 11.0.7 - apiVersion: v2 - created: "2023-03-14T14:25:11.330758671Z" + created: "2023-04-11T09:50:00.354945717+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: b6591abb8694ce4741d9e3f93625d158dd83845f51211cf24120069557b843cc home: https://www.openfaas.com @@ -1624,7 +1650,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.6.tgz version: 11.0.6 - apiVersion: v2 - created: "2023-03-14T14:25:11.328926289Z" + created: "2023-04-11T09:50:00.353166308+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 5dbebd2eb7d46307d80d3f5f2404bfc2b13c9ff2b810c7f091df3791aec0052b home: https://www.openfaas.com @@ -1650,7 +1676,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.5.tgz version: 11.0.5 - apiVersion: v2 - created: "2023-03-14T14:25:11.327477729Z" + created: "2023-04-11T09:50:00.351684088+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 3755d9c54dc6d95b15a881213b855ef5d699ba66c7c8c1fe7eb4de4287a5fff2 home: https://www.openfaas.com @@ -1676,7 +1702,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.4.tgz version: 11.0.4 - apiVersion: v2 - created: "2023-03-14T14:25:11.324565359Z" + created: "2023-04-11T09:50:00.348846754+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: c64f5c673fa19fb4794c93a11a64005d0b13b01d7b9df0a0ff837da7eb18367d home: https://www.openfaas.com @@ -1702,7 +1728,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.3.tgz version: 11.0.3 - apiVersion: v2 - created: "2023-03-14T14:25:11.322078754Z" + created: "2023-04-11T09:50:00.347003003+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 015456d5d25caaa4ec4f272fa852f2e8a0255838b8a8f766d1930ee1bfd61029 home: https://www.openfaas.com @@ -1728,7 +1754,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.2.tgz version: 11.0.2 - apiVersion: v2 - created: "2023-03-14T14:25:11.315599864Z" + created: "2023-04-11T09:50:00.341676686+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 1043afa0b824082ebf574438f7abb9dcf6f305c9b0b8fa280302af3682fce6d0 home: https://www.openfaas.com @@ -1754,7 +1780,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.1.tgz version: 11.0.1 - apiVersion: v2 - created: "2023-03-14T14:25:11.31373497Z" + created: "2023-04-11T09:50:00.339773303+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 309ea32c72e0b426d7aaddc36e56c50b9bada81ce3c305f699e5ea3cfb33d4d4 home: https://www.openfaas.com @@ -1780,7 +1806,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-11.0.0.tgz version: 11.0.0 - apiVersion: v2 - created: "2023-03-14T14:25:11.297138554Z" + created: "2023-04-11T09:50:00.325491889+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 37ae0a50f9d95702b7318e2373b54ea9797946f38d44b147d23326adfe94de38 home: https://www.openfaas.com @@ -1806,7 +1832,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.13.tgz version: 10.2.13 - apiVersion: v2 - created: "2023-03-14T14:25:11.295662093Z" + created: "2023-04-11T09:50:00.323278136+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: cee1804357e5162c413b030be086a6a3ccfe4b02332b49faa1de4bdfc5818d64 home: https://www.openfaas.com @@ -1832,7 +1858,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.12.tgz version: 10.2.12 - apiVersion: v2 - created: "2023-03-14T14:25:11.294225445Z" + created: "2023-04-11T09:50:00.321425825+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 8cface2b5d5a39f365c904b8511fa0baf0015d666e8c314239fb5bfbee55c38a home: https://www.openfaas.com @@ -1858,7 +1884,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.11.tgz version: 10.2.11 - apiVersion: v2 - created: "2023-03-14T14:25:11.292799716Z" + created: "2023-04-11T09:50:00.319542032+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 56be99b85f4734031819defd9d825459421f1fd0555fb3909d379b90ede54a60 home: https://www.openfaas.com @@ -1884,7 +1910,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.10.tgz version: 10.2.10 - apiVersion: v2 - created: "2023-03-14T14:25:11.311829585Z" + created: "2023-04-11T09:50:00.338581974+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: c35fe55ca20c6f1ef36780fa1ad0d0cea03840caec14bf4327e5e49d0f54d88b home: https://www.openfaas.com @@ -1910,7 +1936,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.9.tgz version: 10.2.9 - apiVersion: v2 - created: "2023-03-14T14:25:11.310039074Z" + created: "2023-04-11T09:50:00.337399874+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 210ee87dc07d061ccae9a0399f6badd5c6cf491877918783892aa35e9654090c home: https://www.openfaas.com @@ -1936,7 +1962,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.8.tgz version: 10.2.8 - apiVersion: v2 - created: "2023-03-14T14:25:11.307623842Z" + created: "2023-04-11T09:50:00.336275577+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: bc85d497a340a378d106a5e4ff353b655bf79533a7e63e08cc12f703347364f0 home: https://www.openfaas.com @@ -1962,7 +1988,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.7.tgz version: 10.2.7 - apiVersion: v2 - created: "2023-03-14T14:25:11.306266045Z" + created: "2023-04-11T09:50:00.334287581+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: a1c6244819534d374d7de24a0c0027d6a8d1118e5bec16cda4c377dfd995ffb3 home: https://www.openfaas.com @@ -1988,7 +2014,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.6.tgz version: 10.2.6 - apiVersion: v2 - created: "2023-03-14T14:25:11.304448353Z" + created: "2023-04-11T09:50:00.332505182+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 7a50e3ab2c63164c980024c1eb5ac52dd94761b7ec2df266f5d697c024b81815 home: https://www.openfaas.com @@ -2014,7 +2040,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.5.tgz version: 10.2.5 - apiVersion: v2 - created: "2023-03-14T14:25:11.302657782Z" + created: "2023-04-11T09:50:00.330731643+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 10246e6f48b06bdfcca75269775a36f48fd07f555eb3ae31a9f60da708322e7f home: https://www.openfaas.com @@ -2040,7 +2066,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.4.tgz version: 10.2.4 - apiVersion: v2 - created: "2023-03-14T14:25:11.300820399Z" + created: "2023-04-11T09:50:00.328881302+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: c314cc6ce2fd0f7c723e27ff6d8b5aa21058b926ae583964333f7447a225dbab home: https://www.openfaas.com @@ -2066,7 +2092,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.3.tgz version: 10.2.3 - apiVersion: v2 - created: "2023-03-14T14:25:11.299195364Z" + created: "2023-04-11T09:50:00.327212527+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: ca128987afb7240ceb9530330a58787985a42d8d8235263dbc20bab8b68198a0 home: https://www.openfaas.com @@ -2092,7 +2118,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.2.tgz version: 10.2.2 - apiVersion: v2 - created: "2023-03-14T14:25:11.290783297Z" + created: "2023-04-11T09:50:00.317609618+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 7317c7ebec91cdf523b12ca1b89cc50fd7308d1a835d97ea26f1295161e0e60f home: https://www.openfaas.com @@ -2118,7 +2144,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.1.tgz version: 10.2.1 - apiVersion: v2 - created: "2023-03-14T14:25:11.288854471Z" + created: "2023-04-11T09:50:00.315385934+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: ca8263eb1b14fc1ce3c3c921481e950c4102b685abf91a0961cb74c85d1ec506 home: https://www.openfaas.com @@ -2144,7 +2170,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.2.0.tgz version: 10.2.0 - apiVersion: v2 - created: "2023-03-14T14:25:11.287174094Z" + created: "2023-04-11T09:50:00.314147213+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 2f8cf5f1986b1f75d748d1f04ba8abec9592ad2d5c55fd43ccdd95f7aa4cbe9b home: https://www.openfaas.com @@ -2170,7 +2196,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.1.4.tgz version: 10.1.4 - apiVersion: v2 - created: "2023-03-14T14:25:11.285414564Z" + created: "2023-04-11T09:50:00.313094638+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 77926bf5f98a47a5e44c3fc9276728a2e7f2a66c5d2add6d0c0048bc2a523ee1 home: https://www.openfaas.com @@ -2196,7 +2222,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.1.3.tgz version: 10.1.3 - apiVersion: v2 - created: "2023-03-14T14:25:11.283667624Z" + created: "2023-04-11T09:50:00.311874448+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 1529a7bc0f788125c5e10bd3fdb95b9f1191c715dee079ad2c84162c59d7334e home: https://www.openfaas.com @@ -2222,7 +2248,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.1.2.tgz version: 10.1.2 - apiVersion: v2 - created: "2023-03-14T14:25:11.282045969Z" + created: "2023-04-11T09:50:00.310691588+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 1e94ac1bf91b182bc4a70aa53017aadf280d9f67a336f63eb23c93591df8cee3 home: https://www.openfaas.com @@ -2248,7 +2274,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.1.1.tgz version: 10.1.1 - apiVersion: v2 - created: "2023-03-14T14:25:11.279588105Z" + created: "2023-04-11T09:50:00.30831946+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 050eda187d1303f42bb6f8200b790c6346beef6a0b1dc868335a44cc4bacbce4 home: https://www.openfaas.com @@ -2274,7 +2300,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.1.0.tgz version: 10.1.0 - apiVersion: v2 - created: "2023-03-14T14:25:11.263771135Z" + created: "2023-04-11T09:50:00.294168+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 5053a6af09c82dca40d1afd79bc66d00ad822ca3da00fb8f1395f58b3a297f40 home: https://www.openfaas.com @@ -2300,7 +2326,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.28.tgz version: 10.0.28 - apiVersion: v2 - created: "2023-03-14T14:25:11.261930092Z" + created: "2023-04-11T09:50:00.292015639+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: e8c7e565a72f72a22a79646cb08f5612a13e06f6a58b81b4df4886af42bf99dd home: https://www.openfaas.com @@ -2326,7 +2352,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.27.tgz version: 10.0.27 - apiVersion: v2 - created: "2023-03-14T14:25:11.259776089Z" + created: "2023-04-11T09:50:00.289770854+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: aa5fcf1bf0c25edd1b3127a4fe6619bdf68298263a6ab7066d81e1669bb360f7 home: https://www.openfaas.com @@ -2352,7 +2378,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.25.tgz version: 10.0.25 - apiVersion: v2 - created: "2023-03-14T14:25:11.258449034Z" + created: "2023-04-11T09:50:00.287549371+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: fefb60a72623d54906de3a9df36a9170a13bedad33413f36279b8696d4f0c30f home: https://www.openfaas.com @@ -2378,7 +2404,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.24.tgz version: 10.0.24 - apiVersion: v2 - created: "2023-03-14T14:25:11.25627658Z" + created: "2023-04-11T09:50:00.286147354+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 651ab07949817e0649bbaff973f30619b4561c2943f22f30345eb5f4a100ced6 home: https://www.openfaas.com @@ -2402,7 +2428,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.23.tgz version: 10.0.23 - apiVersion: v2 - created: "2023-03-14T14:25:11.254060464Z" + created: "2023-04-11T09:50:00.283975152+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 758a7bf0a689a278236a26c01e3475ffb9f04244539e3db4b0283be6070fcb93 home: https://www.openfaas.com @@ -2426,7 +2452,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.22.tgz version: 10.0.22 - apiVersion: v2 - created: "2023-03-14T14:25:11.251714664Z" + created: "2023-04-11T09:50:00.281754528+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: ee87efd307cdd3c4b0a8ec84b6c5290d919aea00f83ea074b7e030b1c6fd6165 home: https://www.openfaas.com @@ -2450,7 +2476,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.21.tgz version: 10.0.21 - apiVersion: v2 - created: "2023-03-14T14:25:11.249280521Z" + created: "2023-04-11T09:50:00.279453632+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: ade9365e4b26cd116e58fbe9320f7aeaf201363c960ef49bfcf7b1463c117083 home: https://www.openfaas.com @@ -2474,7 +2500,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.20.tgz version: 10.0.20 - apiVersion: v2 - created: "2023-03-14T14:25:11.245755121Z" + created: "2023-04-11T09:50:00.274935292+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: c84eaae4d8715722dc2ed628f652ef139826f3eb67ebdc8b5665eec5c6120bdb home: https://www.openfaas.com @@ -2498,7 +2524,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.19.tgz version: 10.0.19 - apiVersion: v2 - created: "2023-03-14T14:25:11.244038652Z" + created: "2023-04-11T09:50:00.273323619+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 1c0248fc03c0179f63786278239e2fdc3c7a1b23bcf549b9f44e88169167af1c home: https://www.openfaas.com @@ -2522,7 +2548,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.17.tgz version: 10.0.17 - apiVersion: v2 - created: "2023-03-14T14:25:11.242306833Z" + created: "2023-04-11T09:50:00.271719356+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: dfe550333fcee30a8533cd0352469c1115da753f41f971d760ec8892e78fbc33 home: https://www.openfaas.com @@ -2546,7 +2572,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.16.tgz version: 10.0.16 - apiVersion: v2 - created: "2023-03-14T14:25:11.240453579Z" + created: "2023-04-11T09:50:00.270494185+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 6f6cc2fc7d5dffd8434e152e459122c82703bb7bd8e27e71b5f8c51ba3d4d825 home: https://www.openfaas.com @@ -2570,7 +2596,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.15.tgz version: 10.0.15 - apiVersion: v2 - created: "2023-03-14T14:25:11.238041687Z" + created: "2023-04-11T09:50:00.26915411+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: ce8930519796651c8a73d2c1428d218f71294fb5325404181d452b05c185f9ba home: https://www.openfaas.com @@ -2594,7 +2620,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.14.tgz version: 10.0.14 - apiVersion: v2 - created: "2023-03-14T14:25:11.235959326Z" + created: "2023-04-11T09:50:00.267479565+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: b0a3bab45a6e21c67686c291db81217b969e884223f27f61cebd8f6db7629fbc home: https://www.openfaas.com @@ -2618,7 +2644,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.13.tgz version: 10.0.13 - apiVersion: v2 - created: "2023-03-14T14:25:11.233931677Z" + created: "2023-04-11T09:50:00.265923723+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: f9904174431dc0e792d57e2c686e52c9a5b5ee0b78aedec047d4c143515628e3 home: https://www.openfaas.com @@ -2642,7 +2668,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.12.tgz version: 10.0.12 - apiVersion: v2 - created: "2023-03-14T14:25:11.231858906Z" + created: "2023-04-11T09:50:00.263907336+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 3affb5ae8852bfe150a1888c6e9ee4ae3e4d166f996d1328ee5f457409682cae home: https://www.openfaas.com @@ -2666,7 +2692,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.11.tgz version: 10.0.11 - apiVersion: v2 - created: "2023-03-14T14:25:11.229577688Z" + created: "2023-04-11T09:50:00.261852218+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 85ef8245e7b8c7949983af66c29aa9141e6fdf560d8e218f6b912054266e7093 home: https://www.openfaas.com @@ -2690,7 +2716,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.10.tgz version: 10.0.10 - apiVersion: v2 - created: "2023-03-14T14:25:11.277780533Z" + created: "2023-04-11T09:50:00.306634884+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 71627b67840be8d360d37fd20c6d4c13d906a4a9b75eb014df27a87f87872485 home: https://www.openfaas.com @@ -2714,7 +2740,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.9.tgz version: 10.0.9 - apiVersion: v2 - created: "2023-03-14T14:25:11.275906559Z" + created: "2023-04-11T09:50:00.304945568+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 082b13a8a75f7e6c7a1c86450d1907b29c6f9d31cbc836b84ec31915d6c22d5e home: https://www.openfaas.com @@ -2738,7 +2764,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.8.tgz version: 10.0.8 - apiVersion: v2 - created: "2023-03-14T14:25:11.274077257Z" + created: "2023-04-11T09:50:00.303326534+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 5c6ac52c5d2a28e11f67a9f241ac93e520f998c2595d877522123e5634a87547 home: https://www.openfaas.com @@ -2762,7 +2788,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.7.tgz version: 10.0.7 - apiVersion: v2 - created: "2023-03-14T14:25:11.272027097Z" + created: "2023-04-11T09:50:00.301802954+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: e024848f68ffe4f6ac10140c0621094918fb9dd419bcf639deaa62c86feb7b08 home: https://www.openfaas.com @@ -2786,7 +2812,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.6.tgz version: 10.0.6 - apiVersion: v2 - created: "2023-03-14T14:25:11.26919466Z" + created: "2023-04-11T09:50:00.300512181+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: ee5390106602108ca86c6f735dfb4cd01f2b687501b09034fa86bd4ee9028fff home: https://www.openfaas.com @@ -2810,7 +2836,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.5.tgz version: 10.0.5 - apiVersion: v2 - created: "2023-03-14T14:25:11.267179392Z" + created: "2023-04-11T09:50:00.298190364+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: cc8453bd258d392a3a7a7a454c420809de9a663ba5c98a04bfd805b56265bfe7 home: https://www.openfaas.com @@ -2834,7 +2860,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.4.tgz version: 10.0.4 - apiVersion: v2 - created: "2023-03-14T14:25:11.265451282Z" + created: "2023-04-11T09:50:00.296184977+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 396bfb83c37d55f995ba2a58a939db39fb00955fb2bd97fe3cb606a5c251aad1 home: https://www.openfaas.com @@ -2858,7 +2884,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.3.tgz version: 10.0.3 - apiVersion: v2 - created: "2023-03-14T14:25:11.247272032Z" + created: "2023-04-11T09:50:00.276526915+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: f03774cdfffa47400bd4952342dea21cea1e81076135d5a4c7ed330b3276d82d home: https://www.openfaas.com @@ -2882,7 +2908,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.2.tgz version: 10.0.2 - apiVersion: v2 - created: "2023-03-14T14:25:11.226821944Z" + created: "2023-04-11T09:50:00.25981026+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 78228ec7d71f7c61e64c1c6db1a1ddeba4de730ee9409ca5cbdefbb20c3fb8ba home: https://www.openfaas.com @@ -2906,7 +2932,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.1.tgz version: 10.0.1 - apiVersion: v2 - created: "2023-03-14T14:25:11.225259521Z" + created: "2023-04-11T09:50:00.25737706+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 608d37100a2008cefd74a69793482b8cdd35d6755cff75b56005ffb83d8faf4a home: https://www.openfaas.com @@ -2930,7 +2956,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-10.0.0.tgz version: 10.0.0 - apiVersion: v2 - created: "2023-03-14T14:25:11.558315766Z" + created: "2023-04-11T09:50:00.575839144+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: c7195a933e3ec516c959986f7ac3bdb6bf1659fdf484e41fa577072e6a30f760 home: https://www.openfaas.com @@ -2956,7 +2982,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-9.0.2.tgz version: 9.0.2 - apiVersion: v2 - created: "2023-03-14T14:25:11.557015991Z" + created: "2023-04-11T09:50:00.574098706+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: b6c705b1e61b4af6abaaf64129ed8568831d6daa9fc73ab8acc59b045746cfeb home: https://www.openfaas.com @@ -2982,7 +3008,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-9.0.1.tgz version: 9.0.1 - apiVersion: v2 - created: "2023-03-14T14:25:11.555287332Z" + created: "2023-04-11T09:50:00.573189146+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: cd6d569f2d3cd5176e08a4e81b2b8b8248a6ccffdfd9fc1b1914ae208ba035e6 home: https://www.openfaas.com @@ -3008,7 +3034,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-9.0.0.tgz version: 9.0.0 - apiVersion: v2 - created: "2023-03-14T14:25:11.554147083Z" + created: "2023-04-11T09:50:00.572269325+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 3091976030ac3b2043f351eb72182410bb75a884c79327e117b82f7605bbd8ec home: https://www.openfaas.com @@ -3034,7 +3060,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.1.3.tgz version: 8.1.3 - apiVersion: v2 - created: "2023-03-14T14:25:11.552740875Z" + created: "2023-04-11T09:50:00.571334854+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 28ace538f03ddbe01d41e683863a318718dc957feac5523ad36cdbe25a614360 home: https://www.openfaas.com @@ -3060,7 +3086,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.1.2.tgz version: 8.1.2 - apiVersion: v2 - created: "2023-03-14T14:25:11.551283326Z" + created: "2023-04-11T09:50:00.570377393+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: d62605f5f277455c9c5ab3c977fd3b4edc3dae804374ebf4a6b912e27c5a04c4 home: https://www.openfaas.com @@ -3086,7 +3112,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.1.1.tgz version: 8.1.1 - apiVersion: v2 - created: "2023-03-14T14:25:11.549808825Z" + created: "2023-04-11T09:50:00.568937485+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 4358371100066f56747c6ad9709dbed08144de5b993df8753497281344aaef75 home: https://www.openfaas.com @@ -3112,7 +3138,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.1.0.tgz version: 8.1.0 - apiVersion: v2 - created: "2023-03-14T14:25:11.548640636Z" + created: "2023-04-11T09:50:00.567079873+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: fa5fc22434f55e663e1c6ea4f4d939a2aaef07d4bba285568615934b344779fa home: https://www.openfaas.com @@ -3138,7 +3164,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.7.tgz version: 8.0.7 - apiVersion: v2 - created: "2023-03-14T14:25:11.546914737Z" + created: "2023-04-11T09:50:00.565635515+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 768b1ab76dadbe2921faeb76afb09a3c407850ecb5ec4ce0bd84f18c84369baa home: https://www.openfaas.com @@ -3164,7 +3190,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.6.tgz version: 8.0.6 - apiVersion: v2 - created: "2023-03-14T14:25:11.545861271Z" + created: "2023-04-11T09:50:00.564496118+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: ea89690161e44b0dd6d590622a34f10b72a472ef0ccbc11c99437a4ae4334742 home: https://www.openfaas.com @@ -3190,7 +3216,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.5.tgz version: 8.0.5 - apiVersion: v2 - created: "2023-03-14T14:25:11.544854636Z" + created: "2023-04-11T09:50:00.563253636+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: cbc2353db6915574d700b55d1ced7ef0ed18569e906ad2345854ba7e3c850b44 home: https://www.openfaas.com @@ -3216,7 +3242,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.4.tgz version: 8.0.4 - apiVersion: v2 - created: "2023-03-14T14:25:11.543852082Z" + created: "2023-04-11T09:50:00.561750436+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 966e48f7955f543a85b688bad540ee5189b50f83b08a2a36e70365ea5208a13a home: https://www.openfaas.com @@ -3242,7 +3268,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.3.tgz version: 8.0.3 - apiVersion: v2 - created: "2023-03-14T14:25:11.54264309Z" + created: "2023-04-11T09:50:00.560542816+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 79a22450a575a463cfd8ccdc0149f286411108401ca4e56c264e94ea9d8fa68e home: https://www.openfaas.com @@ -3268,7 +3294,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.2.tgz version: 8.0.2 - apiVersion: v2 - created: "2023-03-14T14:25:11.540595781Z" + created: "2023-04-11T09:50:00.558899672+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: aa440cb36e8a6021290500c5bbe2ef73d26e9ec8a903a02d81c3ac0d1e0f8f6d home: https://www.openfaas.com @@ -3294,7 +3320,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.1.tgz version: 8.0.1 - apiVersion: v2 - created: "2023-03-14T14:25:11.538335014Z" + created: "2023-04-11T09:50:00.557914229+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: a0c8fd7ca435daf758dff635a834cd49d5d01559efec554ac852d8f6df99ee1d home: https://www.openfaas.com @@ -3320,7 +3346,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-8.0.0.tgz version: 8.0.0 - apiVersion: v2 - created: "2023-03-14T14:25:11.537295228Z" + created: "2023-04-11T09:50:00.556920996+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 2b93bb822ea558d78f6fc44c0dae5dde891cf92a44913693691bfd04cdbe2c73 home: https://www.openfaas.com @@ -3346,7 +3372,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.4.4.tgz version: 7.4.4 - apiVersion: v2 - created: "2023-03-14T14:25:11.536355746Z" + created: "2023-04-11T09:50:00.555965735+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 98fa1c88d41e6ce1406a0876c3c8cf3192c1142242a99180d77278d38ab198b5 home: https://www.openfaas.com @@ -3372,7 +3398,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.4.3.tgz version: 7.4.3 - apiVersion: v2 - created: "2023-03-14T14:25:11.535419114Z" + created: "2023-04-11T09:50:00.554972902+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 382031dd362c5bec8ba69c7b44ce7c750ad8653016b2daf321d498131630d537 home: https://www.openfaas.com @@ -3398,7 +3424,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.4.2.tgz version: 7.4.2 - apiVersion: v2 - created: "2023-03-14T14:25:11.534140961Z" + created: "2023-04-11T09:50:00.553055548+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: f7c35ea485fa1bab40e98253dfe93789bea79e6b993eb1ce8e86be11c581516b home: https://www.openfaas.com @@ -3424,7 +3450,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.4.1.tgz version: 7.4.1 - apiVersion: v2 - created: "2023-03-14T14:25:11.532531526Z" + created: "2023-04-11T09:50:00.550479393+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 887fd25412847c689ac3c4d13eb1a34f7e853ea74a205041420efe95a368731a home: https://www.openfaas.com @@ -3450,7 +3476,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.4.0.tgz version: 7.4.0 - apiVersion: v2 - created: "2023-03-14T14:25:11.530362881Z" + created: "2023-04-11T09:50:00.549046815+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 19c3928b9847837212a2a70b68713f9ec9a8f640e576ba05ba7295e5581e3250 home: https://www.openfaas.com @@ -3476,7 +3502,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.3.2.tgz version: 7.3.2 - apiVersion: v2 - created: "2023-03-14T14:25:11.528808869Z" + created: "2023-04-11T09:50:00.547599957+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: bdb550735abf96a6b0780e6c0748c898f047aa448db9b664e01283650e602c49 home: https://www.openfaas.com @@ -3502,7 +3528,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.3.1.tgz version: 7.3.1 - apiVersion: v2 - created: "2023-03-14T14:25:11.527311158Z" + created: "2023-04-11T09:50:00.546159199+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: f1c59f0e9c4a017519e3e89a0a8d74c4c198571ff6da2dda312a6a30478eb439 home: https://www.openfaas.com @@ -3528,7 +3554,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.3.0.tgz version: 7.3.0 - apiVersion: v2 - created: "2023-03-14T14:25:11.525553398Z" + created: "2023-04-11T09:50:00.544729092+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: f5add7a2802d4520c5edcf3e0fe6e9b142182534fd3a06fe00b9e0e2f0600dab home: https://www.openfaas.com @@ -3554,7 +3580,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.8.tgz version: 7.2.8 - apiVersion: v2 - created: "2023-03-14T14:25:11.523674334Z" + created: "2023-04-11T09:50:00.543618745+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 7534e1ee604b6e5d2d57c1a3758c39fa40a3722097e0474fc741abff9d0e393a home: https://www.openfaas.com @@ -3580,7 +3606,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.7.tgz version: 7.2.7 - apiVersion: v2 - created: "2023-03-14T14:25:11.521716427Z" + created: "2023-04-11T09:50:00.541387161+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 7d007708e7e1671c420e00f22dd64ae0d50fdb7ff953c9c24a52e7417343bd97 home: https://www.openfaas.com @@ -3606,7 +3632,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.6.tgz version: 7.2.6 - apiVersion: v2 - created: "2023-03-14T14:25:11.519044315Z" + created: "2023-04-11T09:50:00.539925642+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 13a250251d1d2c1b9ba7b419236f5c3a1b09c20bfd85b6d6172715c3663a1b60 home: https://www.openfaas.com @@ -3632,7 +3658,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.5.tgz version: 7.2.5 - apiVersion: v2 - created: "2023-03-14T14:25:11.517577035Z" + created: "2023-04-11T09:50:00.538432713+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 6f3caa7ef5ce337c8d0ddb44a0f9d463240972a6dc4800949770746d764b7fa9 home: https://www.openfaas.com @@ -3658,7 +3684,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.4.tgz version: 7.2.4 - apiVersion: v2 - created: "2023-03-14T14:25:11.516070414Z" + created: "2023-04-11T09:50:00.537004125+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 0ea59d1ac83ea2e4390d2e90a6ee5ad0c30061e70859f32549a566ffdd1992cc home: https://www.openfaas.com @@ -3684,7 +3710,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.3.tgz version: 7.2.3 - apiVersion: v2 - created: "2023-03-14T14:25:11.514617085Z" + created: "2023-04-11T09:50:00.535530337+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 2b29cf6deaaadad545647508af9bf22df397dcf3fecb70d43f54a54ecb6536bd home: https://www.openfaas.com @@ -3710,7 +3736,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.2.tgz version: 7.2.2 - apiVersion: v2 - created: "2023-03-14T14:25:11.513109053Z" + created: "2023-04-11T09:50:00.534071598+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 68bba3705d2e9c0c0a6afea87d09e4edfc7a76f688fbe4abe08ab191bb4bd01e home: https://www.openfaas.com @@ -3736,7 +3762,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.1.tgz version: 7.2.1 - apiVersion: v2 - created: "2023-03-14T14:25:11.511876871Z" + created: "2023-04-11T09:50:00.532819577+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 1c1cc94e1883dabd6dc3817d6c2f91cc22674196c1f118ae5aa1edb4d7a6bc31 home: https://www.openfaas.com @@ -3762,7 +3788,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.2.0.tgz version: 7.2.0 - apiVersion: v2 - created: "2023-03-14T14:25:11.509457248Z" + created: "2023-04-11T09:50:00.530330094+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 140f1475d1aac65f7236e452085c8ceb2c13a0ffe6d7bc411bdafa55ebf9f420 home: https://www.openfaas.com @@ -3788,7 +3814,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.1.2.tgz version: 7.1.2 - apiVersion: v2 - created: "2023-03-14T14:25:11.507995288Z" + created: "2023-04-11T09:50:00.528786563+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 491a6a707145be70ccd2cf8f1a6250cc32fb9d11bca2b2952f1b9c86e641dc1d home: https://www.openfaas.com @@ -3814,7 +3840,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.1.1.tgz version: 7.1.1 - apiVersion: v2 - created: "2023-03-14T14:25:11.506539629Z" + created: "2023-04-11T09:50:00.52719286+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 2b55582ab7f8414c697832d49d427a63710053d2c15301adf226620b69377c49 home: https://www.openfaas.com @@ -3840,7 +3866,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.1.0.tgz version: 7.1.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.505027017Z" + created: "2023-04-11T09:50:00.525642369+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 833259e2de8fdfd9f4da0dbb78bda50572105db2af0362c36e7f644de6352d4c home: https://www.openfaas.com @@ -3865,7 +3891,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.0.4.tgz version: 7.0.4 - apiVersion: v1 - created: "2023-03-14T14:25:11.503476274Z" + created: "2023-04-11T09:50:00.524063926+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: f8127c4f2b33bf7ea691ca929a3310633b0fd1a6721d99df7eb9b40fdab746b2 home: https://www.openfaas.com @@ -3890,7 +3916,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.0.3.tgz version: 7.0.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.501716025Z" + created: "2023-04-11T09:50:00.521980607+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 9104fd565cb86b366796a2ff49b2e354b2e320f60c9f8343043e6cb89a4367a5 home: https://www.openfaas.com @@ -3915,7 +3941,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.0.2.tgz version: 7.0.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.499361884Z" + created: "2023-04-11T09:50:00.521051436+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: f7b37f2571bfb0dc596e37a000ce4f29aa8346254d79fda25ad4034d6a4848da home: https://www.openfaas.com @@ -3940,7 +3966,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.0.1.tgz version: 7.0.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.497886924Z" + created: "2023-04-11T09:50:00.520136416+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 8c9482cc9ec00709ff3250ff640fee58c40284355e2299b04f5e8126bc048138 home: https://www.openfaas.com @@ -3965,7 +3991,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-7.0.0.tgz version: 7.0.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.496443144Z" + created: "2023-04-11T09:50:00.519228676+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 0e202802844d3575a74e317718d0b464144dc0f1266cbbd360c540b93f2ca306 home: https://www.openfaas.com @@ -3990,7 +4016,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.2.3.tgz version: 6.2.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.494956213Z" + created: "2023-04-11T09:50:00.518321346+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: cc5e7a0e79a7929d8539a7eff0868bbc33fb2b178dd6ccb4479067f3ed57029f home: https://www.openfaas.com @@ -4015,7 +4041,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.2.2.tgz version: 6.2.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.493429381Z" + created: "2023-04-11T09:50:00.517388225+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: fbf8035b5c7346d082e91f685fbaa7f15245bbe86ed782f3e456205056f18fc7 home: https://www.openfaas.com @@ -4040,7 +4066,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.2.1.tgz version: 6.2.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.492118847Z" + created: "2023-04-11T09:50:00.516464824+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 8148bd55704fdb0ee98fb4da89f65507e1fefe25771f113218abee689e17fa63 home: https://www.openfaas.com @@ -4065,7 +4091,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.2.0.tgz version: 6.2.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.489719525Z" + created: "2023-04-11T09:50:00.514686756+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: f6c16c0741baae72090f7928b511078b315edf0298a5f51dc4b05bd337705f64 home: https://www.openfaas.com @@ -4090,7 +4116,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.6.tgz version: 6.1.6 - apiVersion: v1 - created: "2023-03-14T14:25:11.487886253Z" + created: "2023-04-11T09:50:00.513204277+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: a2cb358daa37da91157ae4e6f1b7c6eef009bcb3255bc3ab63d3a20f4d060e71 home: https://www.openfaas.com @@ -4115,7 +4141,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.5.tgz version: 6.1.5 - apiVersion: v1 - created: "2023-03-14T14:25:11.486005698Z" + created: "2023-04-11T09:50:00.511752999+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 777c9a843776e9276b49c867d7beabfe103c619ec0f16f753ea04250d5c9bdd4 home: https://www.openfaas.com @@ -4140,7 +4166,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.4.tgz version: 6.1.4 - apiVersion: v1 - created: "2023-03-14T14:25:11.484150255Z" + created: "2023-04-11T09:50:00.51029401+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 546ba68e18d5c843b7f04a48d47b30d16ad4f4f70c861b570d71d719a9056a79 home: https://www.openfaas.com @@ -4165,7 +4191,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.3.tgz version: 6.1.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.48225368Z" + created: "2023-04-11T09:50:00.508844422+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 4b3ff5a6eb1582320e028b164ae87ba0a34a852095ff9a29070a273cc7b1205c home: https://www.openfaas.com @@ -4190,7 +4216,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.2.tgz version: 6.1.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.480345875Z" + created: "2023-04-11T09:50:00.507438065+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 7274a6ce40958c7b73dc8cb218d019644b7c3ab7308b89efb79093eb208a695e home: https://www.openfaas.com @@ -4215,7 +4241,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.1.tgz version: 6.1.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.477646473Z" + created: "2023-04-11T09:50:00.505498911+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 7e5ebeeb31d0a24d3c2b7118167a0d1b5bbf759f610900515787d68c3d4a71a6 home: https://www.openfaas.com @@ -4240,7 +4266,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.1.0.tgz version: 6.1.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.475816441Z" + created: "2023-04-11T09:50:00.504043753+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 92dc80552b0e09e6ddde3d2490f813ab9aad0e2804d5c95ab3f3d61513bb056b home: https://www.openfaas.com @@ -4265,7 +4291,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.0.4.tgz version: 6.0.4 - apiVersion: v1 - created: "2023-03-14T14:25:11.473977858Z" + created: "2023-04-11T09:50:00.502569144+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 53e87262f1e63b532045ad55081fdbedcc0fcaf74e3c4123fdc6ab00db3d765a home: https://www.openfaas.com @@ -4290,7 +4316,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.0.3.tgz version: 6.0.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.472139875Z" + created: "2023-04-11T09:50:00.501034313+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 2721cbfca07b105f5b89fbf7862e88962dbedad968c80dbd895fe7d5a07b4c4a home: https://www.openfaas.com @@ -4315,7 +4341,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.0.2.tgz version: 6.0.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.470283482Z" + created: "2023-04-11T09:50:00.499527373+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: ee7d69ad9cae2b8067833749ed071f0e88efba65012963a79b23e808c649591f home: https://www.openfaas.com @@ -4338,7 +4364,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.0.1.tgz version: 6.0.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.468323355Z" + created: "2023-04-11T09:50:00.498141537+01:00" description: OpenFaaS - Serverless Functions Made Simple digest: 90ee77d9ea47450c93dd30a9f29e9b95e2da40faa77fd252ea9240aac2e35790 home: https://www.openfaas.com @@ -4361,7 +4387,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-6.0.0.tgz version: 6.0.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.466009096Z" + created: "2023-04-11T09:50:00.496390979+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2eae955e48053814cf3110a68997df327011e651be6bbcbe3be1f2b6634b6e91 home: https://www.openfaas.com @@ -4384,7 +4410,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.8.tgz version: 5.8.8 - apiVersion: v1 - created: "2023-03-14T14:25:11.464627539Z" + created: "2023-04-11T09:50:00.495492379+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b24b6a74f18aa2475fbf2cdc5528088900dd9019df5d9d26de6198b11d45f268 home: https://www.openfaas.com @@ -4407,7 +4433,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.7.tgz version: 5.8.7 - apiVersion: v1 - created: "2023-03-14T14:25:11.46319567Z" + created: "2023-04-11T09:50:00.494395233+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: dc28a1e3ea8299301fa71832256aabcba2fcf7a60603ee44527445ceb802a093 home: https://www.openfaas.com @@ -4430,7 +4456,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.6.tgz version: 5.8.6 - apiVersion: v1 - created: "2023-03-14T14:25:11.461944457Z" + created: "2023-04-11T09:50:00.493179812+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 19f636821dd3e041c1a33d5d762652b110c4f61cd0410fb34dfe5395177487c4 home: https://www.openfaas.com @@ -4453,7 +4479,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.5.tgz version: 5.8.5 - apiVersion: v1 - created: "2023-03-14T14:25:11.460720535Z" + created: "2023-04-11T09:50:00.491946212+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 8919ec3b5e6d39f0c26c0be9d0c5ab12d867871fe63caa2314fadeb68f696a4d home: https://www.openfaas.com @@ -4476,7 +4502,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.4.tgz version: 5.8.4 - apiVersion: v1 - created: "2023-03-14T14:25:11.459574176Z" + created: "2023-04-11T09:50:00.490728941+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 30484e15a7eebcd990f395e753aa1ac426a116af1c05912b8cb0a1a693205043 home: https://www.openfaas.com @@ -4499,7 +4525,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.3.tgz version: 5.8.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.458323713Z" + created: "2023-04-11T09:50:00.489514511+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 395381f7a0305c3a5e2c9506d6b1eaec42c3e5725bc6d708323407a6979ffbe3 home: https://www.openfaas.com @@ -4522,7 +4548,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.2.tgz version: 5.8.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.45617395Z" + created: "2023-04-11T09:50:00.488538308+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2c9118ed71b194ee3b6069e57a3e304e358b6ce46bc8df3b313ccf19ecef5bf9 home: https://www.openfaas.com @@ -4545,7 +4571,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.1.tgz version: 5.8.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.455009851Z" + created: "2023-04-11T09:50:00.486846922+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c0a639d6143fafc36733f94cf81a08f9a13a80a6a87f3fab97726b31dbaf64e2 home: https://www.openfaas.com @@ -4568,7 +4594,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.8.0.tgz version: 5.8.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.45380955Z" + created: "2023-04-11T09:50:00.485230639+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 0e4bf7b6f62ca43d0fdc4ddd5153fb3615fc544be1ea587ffeadb8dcf2904303 home: https://www.openfaas.com @@ -4591,7 +4617,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.7.2.tgz version: 5.7.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.452611129Z" + created: "2023-04-11T09:50:00.483637786+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b50d7ac5e2e27c1f6ec37726653d0b33cd89306cbe8ea3c1584193698fde555d home: https://www.openfaas.com @@ -4614,7 +4640,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.7.1.tgz version: 5.7.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.451337155Z" + created: "2023-04-11T09:50:00.482067194+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2ee9d13840de3f3d4a7e2606e379d86acd33235e08e89fc565352dbb901c136f home: https://www.openfaas.com @@ -4637,7 +4663,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.7.0.tgz version: 5.7.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.450091813Z" + created: "2023-04-11T09:50:00.480484961+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bf7026cc6929d19ce333b3b8ec2003fbd87dc5e125596dfe1f32faf261ae23f9 home: https://www.openfaas.com @@ -4660,7 +4686,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.7.tgz version: 5.6.7 - apiVersion: v1 - created: "2023-03-14T14:25:11.449080678Z" + created: "2023-04-11T09:50:00.478860707+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: e4a6410e51f31d43e0c854c2c088c01fe13479e6e8f808042ba810290c48baa7 home: https://www.openfaas.com @@ -4683,7 +4709,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.6.tgz version: 5.6.6 - apiVersion: v1 - created: "2023-03-14T14:25:11.446849202Z" + created: "2023-04-11T09:50:00.477180832+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: a9702f013efed35cc01afe21455b397d6da797773c6164bd9091c07fc2c5a6cc home: https://www.openfaas.com @@ -4706,7 +4732,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.5.tgz version: 5.6.5 - apiVersion: v1 - created: "2023-03-14T14:25:11.44563211Z" + created: "2023-04-11T09:50:00.47531675+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2cda47db8d988ef759b4d515e73678425c42aa8157bd1d298ad8330a67239cb2 home: https://www.openfaas.com @@ -4729,7 +4755,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.4.tgz version: 5.6.4 - apiVersion: v1 - created: "2023-03-14T14:25:11.44444162Z" + created: "2023-04-11T09:50:00.474309476+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 5d932e61965f7683d463f48337312336e30602c969dbec4c4327b1e1f30fab09 home: https://www.openfaas.com @@ -4752,7 +4778,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.3.tgz version: 5.6.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.443157316Z" + created: "2023-04-11T09:50:00.473032904+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 6c88bd9c7b4aa6827753d6100aa633e720b4f48778bb55217f4c616f06458c11 home: https://www.openfaas.com @@ -4775,7 +4801,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.2.tgz version: 5.6.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.441947065Z" + created: "2023-04-11T09:50:00.471833044+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 3a0fe47eb80d4331000f067fc5591386808dea7de4316603a528fd0f28bcd0f8 home: https://www.openfaas.com @@ -4798,7 +4824,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.1.tgz version: 5.6.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.440945221Z" + created: "2023-04-11T09:50:00.470655875+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2def5b116b93e5ddc6022f1c79c0d51d0f085f866a308fa12753594a03820a84 home: https://www.openfaas.com @@ -4821,7 +4847,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.6.0.tgz version: 5.6.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.439971528Z" + created: "2023-04-11T09:50:00.469441315+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 609a386a806e285f2ae07fff3a4161ba9df26023a3bdd90f38b61a99498e39f4 home: https://www.openfaas.com @@ -4844,7 +4870,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.5.6.tgz version: 5.5.6 - apiVersion: v1 - created: "2023-03-14T14:25:11.438380603Z" + created: "2023-04-11T09:50:00.468260516+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 66f1657c8c20aed59db77fd2f9d06201b9a73fcead1c507c4fd090a74b1f67af home: https://www.openfaas.com @@ -4867,7 +4893,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.5.4.tgz version: 5.5.4 - apiVersion: v1 - created: "2023-03-14T14:25:11.437092339Z" + created: "2023-04-11T09:50:00.467034725+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 7fe32a65e4fd0ba5ae5812c133f9b5da97f6b15aa712bfe95397b752349909df home: https://www.openfaas.com @@ -4890,7 +4916,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.5.3.tgz version: 5.5.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.435825156Z" + created: "2023-04-11T09:50:00.466000761+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 72c323c15737305457e7462104f6c439e21372586bb529e56b86356b578ca21d home: https://www.openfaas.com @@ -4913,7 +4939,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.5.2.tgz version: 5.5.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.434570363Z" + created: "2023-04-11T09:50:00.463937852+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 57d597c6bbacf2ca52cba4e702af5dea2ab98c2f18430624b4d86bf1425dd772 home: https://www.openfaas.com @@ -4936,7 +4962,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.5.1.tgz version: 5.5.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.43330897Z" + created: "2023-04-11T09:50:00.462424002+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bdbb2fe4f1d446f2941a0a13decb3864f891b5224132c6eb422d57e42cea8d6b home: https://www.openfaas.com @@ -4959,7 +4985,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.5.0.tgz version: 5.5.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.432068538Z" + created: "2023-04-11T09:50:00.460908042+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: cd53e19257a7c3d41e171d5f75348b15e576f7085d5cd5f01d0cd98340faa14c home: https://www.openfaas.com @@ -4982,7 +5008,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.4.1.tgz version: 5.4.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.430932979Z" + created: "2023-04-11T09:50:00.459542427+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ba61dbc9b56ffd92425fda67caf4cf9e396e2fcf15c6df2f4317c46da31d6e38 home: https://www.openfaas.com @@ -5005,7 +5031,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.4.0.tgz version: 5.4.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.420356578Z" + created: "2023-04-11T09:50:00.449071109+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c6d41580cfabb91bc2f3cb544d18eff8f543a2e0f34725277df6fad5555bd931 home: https://www.openfaas.com @@ -5028,7 +5054,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.11.tgz version: 5.3.11 - apiVersion: v1 - created: "2023-03-14T14:25:11.418780585Z" + created: "2023-04-11T09:50:00.447916891+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 29ecc62c634105464689d5cb91159dfb04b1d0fc65ed51f7ba65dbbd8cba58f7 home: https://www.openfaas.com @@ -5051,7 +5077,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.10.tgz version: 5.3.10 - apiVersion: v1 - created: "2023-03-14T14:25:11.429712658Z" + created: "2023-04-11T09:50:00.458248954+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: f34b491b431db50a553a190ae81da9e59909d188ceca43b89b931ca7b15b0d6a home: https://www.openfaas.com @@ -5074,7 +5100,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.9.tgz version: 5.3.9 - apiVersion: v1 - created: "2023-03-14T14:25:11.428128804Z" + created: "2023-04-11T09:50:00.457253571+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 31948e7bc549fae977ff4d5c1df582718f69376c73b3dbd8b0d145a299609aa4 home: https://www.openfaas.com @@ -5097,7 +5123,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.8.tgz version: 5.3.8 - apiVersion: v1 - created: "2023-03-14T14:25:11.426761347Z" + created: "2023-04-11T09:50:00.456377582+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: dc790dd7ef8feb928a9c6709d1d47759494fba54e05e1e9b66e83cfb7f9816d8 home: https://www.openfaas.com @@ -5120,7 +5146,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.7.tgz version: 5.3.7 - apiVersion: v1 - created: "2023-03-14T14:25:11.425718551Z" + created: "2023-04-11T09:50:00.454748597+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 259794d738c13144bf9d4db1786b72571eda241bf07b619d5c6f77c1e54d7d98 home: https://www.openfaas.com @@ -5143,7 +5169,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.6.tgz version: 5.3.6 - apiVersion: v1 - created: "2023-03-14T14:25:11.424666455Z" + created: "2023-04-11T09:50:00.453523377+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 16d056eb463f740b65a2a8d67f2a1aa9f7cd7a8057e670890a1a0610cc0ec593 home: https://www.openfaas.com @@ -5166,7 +5192,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.5.tgz version: 5.3.5 - apiVersion: v1 - created: "2023-03-14T14:25:11.423611199Z" + created: "2023-04-11T09:50:00.45240334+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: baf371944c011ff441ac95c062122427b4d22be915d13b01429e7a010dee7d76 home: https://www.openfaas.com @@ -5189,7 +5215,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.4.tgz version: 5.3.4 - apiVersion: v1 - created: "2023-03-14T14:25:11.422554233Z" + created: "2023-04-11T09:50:00.451303143+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: fb2536df55a163efb68d10bc68c5deaca1615bc814f5a6c3da364e77fcf13a41 home: https://www.openfaas.com @@ -5212,7 +5238,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.3.tgz version: 5.3.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.421523318Z" + created: "2023-04-11T09:50:00.450204247+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 5859c2ca0ec6aba463fa216fd8a593710969c44fb23052ba8fc424ab5b23938d home: https://www.openfaas.com @@ -5235,7 +5261,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.2.tgz version: 5.3.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.417371437Z" + created: "2023-04-11T09:50:00.446744102+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 61e780c469fc9404ce183b543b8d622328903a393750d7cabfe8d941fb87d316 home: https://www.openfaas.com @@ -5258,7 +5284,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.3.1.tgz version: 5.3.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.41600928Z" + created: "2023-04-11T09:50:00.445571993+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 1ebf5b8e4e6c2038d2ff7b4510605a4ce1880e7e721531d1524f805519de5a67 home: https://www.openfaas.com @@ -5283,7 +5309,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.2.2.tgz version: 5.2.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.414684705Z" + created: "2023-04-11T09:50:00.444057663+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ccc8469e3e0d86665345a2708b0b3fce1c22aaafb624909e6282ad5628d73f59 home: https://www.openfaas.com @@ -5308,7 +5334,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.2.1.tgz version: 5.2.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.413355769Z" + created: "2023-04-11T09:50:00.443404041+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 61fb1f1117ce10c2dda87402206b2b046885627d43c1fc90d0709d945b2b8919 home: https://www.openfaas.com @@ -5333,7 +5359,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.2.0.tgz version: 5.2.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.411987793Z" + created: "2023-04-11T09:50:00.44276976+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: e70ecd66b98d9b9ef915c0a0c6bbf76fdb77687fec9886a3f1f75234163c9698 home: https://www.openfaas.com @@ -5358,7 +5384,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.1.5.tgz version: 5.1.5 - apiVersion: v1 - created: "2023-03-14T14:25:11.410664547Z" + created: "2023-04-11T09:50:00.442124019+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: f3629d7aabbefce5d0045160e859c7a95bcc0cc28333fb226097e559790654a0 home: https://www.openfaas.com @@ -5383,7 +5409,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.1.4.tgz version: 5.1.4 - apiVersion: v1 - created: "2023-03-14T14:25:11.40927981Z" + created: "2023-04-11T09:50:00.441500848+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 609f4ecf6cb80601dcc55ddc389fc25315526da5bda521834fd49564304f9698 home: https://www.openfaas.com @@ -5408,7 +5434,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.1.3.tgz version: 5.1.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.407435767Z" + created: "2023-04-11T09:50:00.440870587+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 42ed71363397c2c45a1476da33c8cea195b473574d830c70431223dc35279f1f home: https://www.openfaas.com @@ -5433,7 +5459,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.1.2.tgz version: 5.1.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.406412753Z" + created: "2023-04-11T09:50:00.440194105+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 49516bf0c5940ec8e9317a4af4d0b0fc8223d74f605936ffaea8fed9e85da48a home: https://www.openfaas.com @@ -5458,7 +5484,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.1.1.tgz version: 5.1.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.405359707Z" + created: "2023-04-11T09:50:00.439495411+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 0650d10307bfe350e5e07603f0bf3e8dff8f39b4bdb08344dddb9e25bc4d1bdd home: https://www.openfaas.com @@ -5483,7 +5509,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.1.0.tgz version: 5.1.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.404349032Z" + created: "2023-04-11T09:50:00.437984421+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 5369f5b2927b4d7481b66667d07b260792e65eb8b36623911ee889c9612a9cb1 home: https://www.openfaas.com @@ -5508,7 +5534,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.0.1.tgz version: 5.0.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.403335578Z" + created: "2023-04-11T09:50:00.437306589+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: fbd1761f0c9337bfdb25d55f275490a8e7213c0c9076f640a15cb6c284719b3b home: https://www.openfaas.com @@ -5533,7 +5559,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-5.0.0.tgz version: 5.0.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.402289182Z" + created: "2023-04-11T09:50:00.436626136+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b2d6576eeba77f691402c2614947e97234f04c8b6425fb1342c7fba9f2ea2661 home: https://www.openfaas.com @@ -5558,7 +5584,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.8.2.tgz version: 4.8.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.401272307Z" + created: "2023-04-11T09:50:00.435935343+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 8fca83fc2f0627c72dcfc825f83e54838402f4e87cb37da06e133d0ca040a5fd home: https://www.openfaas.com @@ -5583,7 +5609,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.8.1.tgz version: 4.8.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.400366456Z" + created: "2023-04-11T09:50:00.435262031+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: f873a01735eaf2db837772eb170217df47da04b0369f8c79b577833423984a98 home: https://www.openfaas.com @@ -5608,7 +5634,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.8.0.tgz version: 4.8.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.399488676Z" + created: "2023-04-11T09:50:00.434310029+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 9edf338218af0110a938525c9e1e5bd93e448768bd643e2a836d26405e36144e home: https://www.openfaas.com @@ -5633,7 +5659,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.7.4.tgz version: 4.7.4 - apiVersion: v1 - created: "2023-03-14T14:25:11.398224073Z" + created: "2023-04-11T09:50:00.433001146+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ca70d59f7e0cc2ffc0983cfd7dd21fbb462ae63c57f9588a5bd61ac5bfe8eb3f home: https://www.openfaas.com @@ -5658,7 +5684,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.7.3.tgz version: 4.7.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.397567551Z" + created: "2023-04-11T09:50:00.431791536+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 4130462a951d5b0979ed5d15d2dd60d8d6c08e5f68e6f600b47606ad29c54ebd home: https://www.openfaas.com @@ -5683,7 +5709,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.7.2.tgz version: 4.7.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.396911968Z" + created: "2023-04-11T09:50:00.430543905+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 29caf942ddc24aef3840425ff916549a15ea1806071b475395092bbdf4cceefc home: https://www.openfaas.com @@ -5708,7 +5734,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.7.1.tgz version: 4.7.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.396299387Z" + created: "2023-04-11T09:50:00.429243851+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: a4fb0e6707fd64fc3f3d964c612edf67b52d03eeceec7e01246c82f832a64cf9 home: https://www.openfaas.com @@ -5733,7 +5759,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.7.0.tgz version: 4.7.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.395692337Z" + created: "2023-04-11T09:50:00.427557875+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: e43f996bdd7da5e79220dd7e03de477706b24e717235e3462d0fc0bc062c6592 home: https://www.openfaas.com @@ -5758,7 +5784,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.6.4.tgz version: 4.6.4 - apiVersion: v1 - created: "2023-03-14T14:25:11.395082696Z" + created: "2023-04-11T09:50:00.426861392+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: fc1fcfac0669f4922458d25fea8a57d416615d001f5d31f481d71d94ad3c1ac9 home: https://www.openfaas.com @@ -5783,7 +5809,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.6.3.tgz version: 4.6.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.394250758Z" + created: "2023-04-11T09:50:00.426221271+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: beafa0f247e1934e6dab208979831d762df18b2b8eb3c2afc9e44090d3d63328 home: https://www.openfaas.com @@ -5808,7 +5834,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.6.2.tgz version: 4.6.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.393290765Z" + created: "2023-04-11T09:50:00.425563579+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bdccac3babaf5c0f063c22093916276d4e2a27bdc28df27f14d79ebe89d6ecda home: https://www.openfaas.com @@ -5833,7 +5859,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.6.1.tgz version: 4.6.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.392401005Z" + created: "2023-04-11T09:50:00.424910508+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 1ec994bfe542a70904a3700922435aae5e734f1c349a8ec6f311b848c0eba3d4 home: https://www.openfaas.com @@ -5858,7 +5884,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.6.0.tgz version: 4.6.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.391651389Z" + created: "2023-04-11T09:50:00.424299627+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: d2e815e64da306d92944ae288477a2c0add9b040a3357b132f1f2c1ec90f8445 home: https://www.openfaas.com @@ -5883,7 +5909,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.5.0.tgz version: 4.5.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.390282892Z" + created: "2023-04-11T09:50:00.423681557+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c958a207e5bd22026e6e60a1382892d221d458e719fe19ebb10e32debdc2c7db home: https://www.openfaas.com @@ -5908,7 +5934,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.4.1.tgz version: 4.4.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.389678661Z" + created: "2023-04-11T09:50:00.423065246+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 16ae856a8cbb85997f4117249222b9617fd3a3160e178a520d2a9432752b8074 home: https://www.openfaas.com @@ -5933,7 +5959,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.4.0.tgz version: 4.4.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.389088441Z" + created: "2023-04-11T09:50:00.42198123+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bf4f279e9863d52a47fa349444853d5852570b15fae20d0b288dc4e6f1bfc711 home: https://www.openfaas.com @@ -5958,7 +5984,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.3.5.tgz version: 4.3.5 - apiVersion: v1 - created: "2023-03-14T14:25:11.388507951Z" + created: "2023-04-11T09:50:00.420780081+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: fb1c23263188eb6b578b63357ec346b28964138b37b1b74f1c264d8c89b1f9a8 home: https://www.openfaas.com @@ -5983,7 +6009,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.3.4.tgz version: 4.3.4 - apiVersion: v1 - created: "2023-03-14T14:25:11.387997314Z" + created: "2023-04-11T09:50:00.419364874+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 4a84e17d3faade9382517258582e40ec74ac44259b78f0eb0c466fa0f2e0e122 home: https://www.openfaas.com @@ -6008,7 +6034,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.3.3.tgz version: 4.3.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.387505187Z" + created: "2023-04-11T09:50:00.418877727+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 305d7f3752360d4bd2e8faf54930e0f56be16b32dc8278afc5bf45ca0d07a94f home: https://www.openfaas.com @@ -6033,7 +6059,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.3.2.tgz version: 4.3.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.3870168Z" + created: "2023-04-11T09:50:00.418093871+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ca9cc6c463c8dbf851f9a3af07cc7ad82c6bb0cb154c0cfe1af35574c5f57f2d home: https://www.openfaas.com @@ -6058,7 +6084,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.3.1.tgz version: 4.3.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.386088539Z" + created: "2023-04-11T09:50:00.417256524+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 89f1706dd6d37580958bccfc7deaa3c18b7567501d02e390585fb8633c5c3bfa home: https://www.openfaas.com @@ -6083,7 +6109,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.3.0.tgz version: 4.3.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.385091305Z" + created: "2023-04-11T09:50:00.416471078+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b9c635c702bfe5b87de7fc5026e73cfb8dba34368fae8ad637b3ac9120ea9e36 home: https://www.openfaas.com @@ -6108,7 +6134,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.2.0.tgz version: 4.2.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.384016398Z" + created: "2023-04-11T09:50:00.415709932+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 334d5c9fccb83830c0db2c1c930c5725d10b4e5c4051d88e3ac32509bc25c462 home: https://www.openfaas.com @@ -6133,7 +6159,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.1.1.tgz version: 4.1.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.382761915Z" + created: "2023-04-11T09:50:00.414934527+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 1d90e4836620979c4b0ad0ed35b73e6b9df4fffff028aa4349103bc498b4fa81 home: https://www.openfaas.com @@ -6158,7 +6184,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.1.0.tgz version: 4.1.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.381560174Z" + created: "2023-04-11T09:50:00.414077388+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bb69e13f76f0f9f6bc62612e52e16c9ca073590928ecc73bf05506970fbc44c2 home: https://www.openfaas.com @@ -6183,7 +6209,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-4.0.0.tgz version: 4.0.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.380731386Z" + created: "2023-04-11T09:50:00.413304443+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 7a8ad9756c3b243c33f37aa43bea1ac32360804350b9e21fa32f3c96fcf4808e home: https://www.openfaas.com @@ -6208,7 +6234,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-3.3.1.tgz version: 3.3.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.379928949Z" + created: "2023-04-11T09:50:00.412552858+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 3e9cf71bffb7c44aaa0c876f3b5adcf46e7b338c759e337e9464a9e2ab9c102e home: https://www.openfaas.com @@ -6233,7 +6259,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-3.3.0.tgz version: 3.3.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.379155132Z" + created: "2023-04-11T09:50:00.411901876+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 5b5a05c50da7dbd313f734b2194148b0c65563e6ed44c41881e4fb64ea973780 home: https://www.openfaas.com @@ -6258,7 +6284,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-3.2.3.tgz version: 3.2.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.378320664Z" + created: "2023-04-11T09:50:00.410427657+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bf9f7e610cb842d394589d3f43ac223d9e3b6a9d34d6eb5e708159c7b1a4cb12 home: https://www.openfaas.com @@ -6283,7 +6309,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-3.2.2.tgz version: 3.2.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.377534027Z" + created: "2023-04-11T09:50:00.409566639+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ac4bb202a70d5abc58c667a3662b749b8998aaa66eb31dfcaac202f148fc9fe1 home: https://www.openfaas.com @@ -6308,7 +6334,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-3.2.0.tgz version: 3.2.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.376771401Z" + created: "2023-04-11T09:50:00.408732961+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 9af11f0f8b5567676233ea779435d85b389bf19f7b6be2753b8cdee6fcbb5e09 home: https://www.openfaas.com @@ -6333,7 +6359,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-3.0.0.tgz version: 3.0.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.375997945Z" + created: "2023-04-11T09:50:00.407969226+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ebb50d8e3acc4ac6a5637c81b5c4bf791ba3b69556fb177e5f711f069f354be0 home: https://www.openfaas.com @@ -6358,7 +6384,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-2.1.4.tgz version: 2.1.4 - apiVersion: v1 - created: "2023-03-14T14:25:11.37526679Z" + created: "2023-04-11T09:50:00.407255522+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bb1a10058c6cb2d42246ef88ac0118c3b8b67e7f622d891b2605c898da2759ef home: https://www.openfaas.com @@ -6383,7 +6409,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-2.1.3.tgz version: 2.1.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.374511394Z" + created: "2023-04-11T09:50:00.406538038+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 9b85946a5153725578a40b06199127d9595b3ed9c36cabaca7990b4a23578187 home: https://www.openfaas.com @@ -6408,7 +6434,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-2.1.2.tgz version: 2.1.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.373737637Z" + created: "2023-04-11T09:50:00.405804244+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 3ea4d0c129cb4296deb61c44c325f15ddb0bce9e95d42de5903acccfab9728f5 home: https://www.openfaas.com @@ -6433,7 +6459,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-2.1.1.tgz version: 2.1.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.372987242Z" + created: "2023-04-11T09:50:00.40509357+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: d414ec291117ec3d2d3c88eee79bcfcb4777ffe1a17ece2150ebe0c959630a17 home: https://www.openfaas.com @@ -6458,7 +6484,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-2.1.0.tgz version: 2.1.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.372170954Z" + created: "2023-04-11T09:50:00.404345785+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: ea9449ae717c8e621e5d8c536050691fcb3c593991128ebe656d3e1ba50327f0 home: https://www.openfaas.com @@ -6483,7 +6509,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-2.0.0.tgz version: 2.0.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.223696288Z" + created: "2023-04-11T09:50:00.256418038+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 681ee9cb041db8204863bc16156f6ad9ee410e188a318223ce8d347021583da9 home: https://www.openfaas.com @@ -6508,7 +6534,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.9.1.tgz version: 1.9.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.222996714Z" + created: "2023-04-11T09:50:00.255948922+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c086269fed6b434bb06bbd1f8ad5a5255c71519044d3043d023b3f5f3720dc37 home: https://www.openfaas.com @@ -6533,7 +6559,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.8.1.tgz version: 1.8.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.222318761Z" + created: "2023-04-11T09:50:00.255497117+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: bc5ddaf593348ae9fce336a340c1c283ebaea380f253f7400af83d102aab1154 home: https://www.openfaas.com @@ -6558,7 +6584,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.8.0.tgz version: 1.8.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.221582366Z" + created: "2023-04-11T09:50:00.255080844+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: dcc1c3cee2f005abce4136eda6bd33755e43534f3f6b02c5d9834d6b4d18cd70 home: https://www.openfaas.com @@ -6581,7 +6607,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.7.1.tgz version: 1.7.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.220917353Z" + created: "2023-04-11T09:50:00.2546589+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c12d29315a6d69c954b64141fa3f91c7c524573e79b263cb3c5ea0aea6c8884e home: https://www.openfaas.com @@ -6604,7 +6630,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.7.0.tgz version: 1.7.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.22024608Z" + created: "2023-04-11T09:50:00.254234535+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2295d3256256fec9d4c22c51bc99bbb6476fcb69dd2e98f990b793323be35bbc home: https://www.openfaas.com @@ -6627,7 +6653,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.6.2.tgz version: 1.6.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.219625999Z" + created: "2023-04-11T09:50:00.253799681+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 96c42df1fcea981fb108f2366a3685dd27cc26661aa8bb18f4cf529b9f179d32 home: https://www.openfaas.com @@ -6650,7 +6676,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.6.1.tgz version: 1.6.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.219086911Z" + created: "2023-04-11T09:50:00.253378357+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 375d873875b0f0cb8c6b6eb5e9de3dbc7ba2d30fcd76bc85d63ecf67213107b8 home: https://www.openfaas.com @@ -6673,7 +6699,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.6.0.tgz version: 1.6.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.218213221Z" + created: "2023-04-11T09:50:00.252943463+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 916494e9852895abb6e8190bbec49d1785f2a0f2f4042df23796fa7d9c188bf2 home: https://www.openfaas.com @@ -6696,7 +6722,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.5.0.tgz version: 1.5.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.216618156Z" + created: "2023-04-11T09:50:00.252075654+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 050281112653d480395fedd0f8dd8c838e590937bfe19514b7ed0a83ac81a09e home: https://www.openfaas.com @@ -6719,7 +6745,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.4.4.tgz version: 1.4.4 - apiVersion: v1 - created: "2023-03-14T14:25:11.215945133Z" + created: "2023-04-11T09:50:00.250700148+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c53e92aff0b0a0221b046da0edb0b041173b04c9994e6b06f4c87b069a6c9857 home: https://www.openfaas.com @@ -6742,7 +6768,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.4.3.tgz version: 1.4.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.21526706Z" + created: "2023-04-11T09:50:00.249968254+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: d968c2a45bbd51d882634cb19a0d49fd09d6eaac80993dee1d1b84641b8564d7 home: https://www.openfaas.com @@ -6765,7 +6791,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.3.3.tgz version: 1.3.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.214567626Z" + created: "2023-04-11T09:50:00.249212259+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 237f21453d94363c77eb445cd428322be3cbdbe08e6ea3a5f555fa7fd9695fb1 home: https://www.openfaas.com @@ -6788,7 +6814,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.3.2.tgz version: 1.3.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.213893413Z" + created: "2023-04-11T09:50:00.248514876+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 69f2a54c60acb5f873d98dec801a1bb374a143e307198dd333b3eecb86a3fd0e home: https://www.openfaas.com @@ -6811,7 +6837,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.3.1.tgz version: 1.3.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.213228651Z" + created: "2023-04-11T09:50:00.247825743+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 54a9abc4c087fd5aa62d4c9b41e6939ced012cf42c439b31929f2ed0727263a8 home: https://www.openfaas.com @@ -6834,7 +6860,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.3.0.tgz version: 1.3.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.212547227Z" + created: "2023-04-11T09:50:00.24713958+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2954703f117c665363786ea5d2a83d27f1f6db6f4fa830534d0acb665f18ff03 home: https://www.openfaas.com @@ -6857,7 +6883,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.9.tgz version: 1.2.9 - apiVersion: v1 - created: "2023-03-14T14:25:11.211857724Z" + created: "2023-04-11T09:50:00.246429507+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b7f55e0fe1040f7fff93ad1532632855245dd2800b9407f774afbad6a26de134 home: https://www.openfaas.com @@ -6880,7 +6906,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.8.tgz version: 1.2.8 - apiVersion: v1 - created: "2023-03-14T14:25:11.211111369Z" + created: "2023-04-11T09:50:00.245669291+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: fcb1c441c1ca27f88302d872fd4e87e4d88d1aa4f51739d39f4fff17c3721fd9 home: https://www.openfaas.com @@ -6903,7 +6929,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.7.tgz version: 1.2.7 - apiVersion: v1 - created: "2023-03-14T14:25:11.210506338Z" + created: "2023-04-11T09:50:00.244953968+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 19b0a917d4825a6a40b7904e9072b9994c9ec2f9110f2871021695c5715f5cfb home: https://www.openfaas.com @@ -6926,7 +6952,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.6.tgz version: 1.2.6 - apiVersion: v1 - created: "2023-03-14T14:25:11.209997331Z" + created: "2023-04-11T09:50:00.244266785+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b91aff9318fa01e18f4cb23906647f910cb3170d06d378044ee1409268b30ee0 home: https://www.openfaas.com @@ -6949,7 +6975,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.5.tgz version: 1.2.5 - apiVersion: v1 - created: "2023-03-14T14:25:11.209446432Z" + created: "2023-04-11T09:50:00.243600433+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2318825fb60f308c172d608b769ea150c368177361c2449998c129f6cf426eba home: https://www.openfaas.com @@ -6972,7 +6998,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.4.tgz version: 1.2.4 - apiVersion: v1 - created: "2023-03-14T14:25:11.208307083Z" + created: "2023-04-11T09:50:00.24290968+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: fad03135ed925a86b5b004986bc0916b1dacce3292dfdf8c968aba45d518ce33 home: https://www.openfaas.com @@ -6995,7 +7021,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.3.tgz version: 1.2.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.207782975Z" + created: "2023-04-11T09:50:00.242054341+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 776f09ac11a7e6fcdb1b32a7ac48db0f84dccb622a1b906dff2b804ecab00fba home: https://www.openfaas.com @@ -7018,7 +7044,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.2.tgz version: 1.2.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.20735551Z" + created: "2023-04-11T09:50:00.240543291+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c6e08ca7839be38fa97c6be953cb38c5d6dc7e016a4f873aa45ff553799b3f6b home: https://www.openfaas.com @@ -7041,7 +7067,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.1.tgz version: 1.2.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.206941106Z" + created: "2023-04-11T09:50:00.240137988+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 8dcc919b9d17fafac602cf75e958e428846b4c9fc3b55d13029334cab05b8a38 home: https://www.openfaas.com @@ -7064,7 +7090,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.2.0.tgz version: 1.2.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.206288294Z" + created: "2023-04-11T09:50:00.239728894+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 2f5ad4dd1afc2535ff11325eafc7cde1b15470352753287b16ca38075c5dfd67 home: https://www.openfaas.com @@ -7087,7 +7113,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.7.tgz version: 1.1.7 - apiVersion: v1 - created: "2023-03-14T14:25:11.205604571Z" + created: "2023-04-11T09:50:00.23929542+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 724871c9d312638c03796e092460d0979bf0e3629610e705573e02505b294e8d home: https://www.openfaas.com @@ -7110,7 +7136,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.6.tgz version: 1.1.6 - apiVersion: v1 - created: "2023-03-14T14:25:11.204973659Z" + created: "2023-04-11T09:50:00.238881746+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: c9b20f965b79e4fe13165a5fae15eeae76d45295c098bf3da0a0bf281deecf0d home: https://www.openfaas.com @@ -7133,7 +7159,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.5.tgz version: 1.1.5 - apiVersion: v1 - created: "2023-03-14T14:25:11.204360288Z" + created: "2023-04-11T09:50:00.238419041+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 9f4bf7e660d0f3ec75617c6fb1c6629460f79532d393519e8d2581d70372cbbe home: https://www.openfaas.com @@ -7156,7 +7182,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.4.tgz version: 1.1.4 - apiVersion: v1 - created: "2023-03-14T14:25:11.203739047Z" + created: "2023-04-11T09:50:00.237928365+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 14979bee23155a1340876e2024e810c0e07702911fee1f99e8efde22adefae7c home: https://www.openfaas.com @@ -7179,7 +7205,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.3.tgz version: 1.1.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.203131916Z" + created: "2023-04-11T09:50:00.237462379+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: e94224cfca6954585eaacd99bb1e0edb6a2e3a6719eded9443886a11fce5221e home: https://www.openfaas.com @@ -7202,7 +7228,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.2.tgz version: 1.1.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.202522515Z" + created: "2023-04-11T09:50:00.236984933+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 3d60131c5f195f2fedd3ea8d55b3054a8ca705f909adc39f836d5c6ce7ee493f home: https://www.openfaas.com @@ -7225,7 +7251,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.1.tgz version: 1.1.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.201894434Z" + created: "2023-04-11T09:50:00.236418874+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 652ff06c8188502f83f0def4a4bb33a6b4b0c6d8e3a408782e875423ae42220c home: https://www.openfaas.com @@ -7248,7 +7274,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.1.0.tgz version: 1.1.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.201397767Z" + created: "2023-04-11T09:50:00.235779603+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 8a1ebc077d40cb4e31945e57cdf69a71c5c8ebe8cff7d1c976e8e862ad9710eb home: https://www.openfaas.com @@ -7269,7 +7295,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.21.tgz version: 1.0.21 - apiVersion: v1 - created: "2023-03-14T14:25:11.20092442Z" + created: "2023-04-11T09:50:00.235300297+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 3f28fd8eb6dd411a612e4092f1d569377dcfea9b247c40357b6ca93d2633f99c home: https://www.openfaas.com @@ -7290,7 +7316,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.20.tgz version: 1.0.20 - apiVersion: v1 - created: "2023-03-14T14:25:11.199844354Z" + created: "2023-04-11T09:50:00.234890154+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 655e12161299bfe0dad9a8c76a80619a133d1b6413924b1b26bd1980c9334bb2 home: https://www.openfaas.com @@ -7311,7 +7337,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.19.tgz version: 1.0.19 - apiVersion: v1 - created: "2023-03-14T14:25:11.199496692Z" + created: "2023-04-11T09:50:00.23447976+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: b5485851da4921afc87ac73d8004570cd1f17219440944b76e3d187043d46f7a home: https://www.openfaas.com @@ -7332,7 +7358,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.18.tgz version: 1.0.18 - apiVersion: v1 - created: "2023-03-14T14:25:11.19916759Z" + created: "2023-04-11T09:50:00.234076037+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 49fdd14e168a14e83c4aa61674f44b7eeeca35ed98251d5abc0aa31fdcea8858 home: https://www.openfaas.com @@ -7353,7 +7379,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.17.tgz version: 1.0.17 - apiVersion: v1 - created: "2023-03-14T14:25:11.198708855Z" + created: "2023-04-11T09:50:00.233177227+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: f8e694e8b868524bfa8fec82239becb60d0e17b9384076856df0a303012138da home: https://www.openfaas.com @@ -7374,7 +7400,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.16.tgz version: 1.0.16 - apiVersion: v1 - created: "2023-03-14T14:25:11.198065873Z" + created: "2023-04-11T09:50:00.232576137+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: 8b69ee7b5de254eb8d9f2a8db2574e74e6d9dccf995e06cb9a2316b780c678ca home: https://www.openfaas.com @@ -7395,7 +7421,7 @@ entries: - https://openfaas.github.io/faas-netes/openfaas-1.0.15.tgz version: 1.0.15 - apiVersion: v1 - created: "2023-03-14T14:25:11.197391Z" + created: "2023-04-11T09:50:00.23206179+01:00" description: Enable Kubernetes as a backend for OpenFaaS (Functions as a Service) digest: e484ee66f94d3893ab4af2159a4514dac6e072639bae6f3bbe9801ae68112f78 home: https://www.openfaas.com @@ -7417,9 +7443,9 @@ entries: version: 1.0.14 postgres-connector: - apiVersion: v1 - created: "2023-03-14T14:25:11.560472349Z" + created: "2023-04-11T09:50:00.577956794+01:00" description: Trigger OpenFaaS functions from PostgreSQL - digest: f5695fd440b794f0708bc14931ec2c71d3ee88dcaf06350a333583bcf3440309 + digest: 1afbca94a5f355d79a060c9c0ce5174a97e84f81c954927cdd16cb7f69cd2387 home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -7437,7 +7463,7 @@ entries: - https://openfaas.github.io/faas-netes/postgres-connector-0.1.0.tgz version: 0.1.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.560147668Z" + created: "2023-04-11T09:50:00.577466698+01:00" description: Trigger OpenFaaS functions from PostgreSQL digest: 25434d0b146569e4ba8ac928c74b79c22fba9537bdb812f5050d823734bfad29 home: https://www.openfaas.com @@ -7457,7 +7483,7 @@ entries: - https://openfaas.github.io/faas-netes/postgres-connector-0.0.6.tgz version: 0.0.6 - apiVersion: v1 - created: "2023-03-14T14:25:11.559839698Z" + created: "2023-04-11T09:50:00.577151947+01:00" description: Trigger OpenFaaS functions from PostgreSQL digest: 9d2707588e81a2ad430f2cb5c4433ad4635082623f916ce02f96234407e0b7c2 home: https://www.openfaas.com @@ -7477,7 +7503,7 @@ entries: - https://openfaas.github.io/faas-netes/postgres-connector-0.0.5.tgz version: 0.0.5 - apiVersion: v1 - created: "2023-03-14T14:25:11.559532827Z" + created: "2023-04-11T09:50:00.576834857+01:00" description: Trigger OpenFaaS functions from PostgreSQL digest: 537621b43d5f04ee2e5ea04716873110a2b82b2bc91d28d3f17f08a02f9259fd home: https://www.openfaas.com @@ -7497,7 +7523,7 @@ entries: - https://openfaas.github.io/faas-netes/postgres-connector-0.0.4.tgz version: 0.0.4 - apiVersion: v1 - created: "2023-03-14T14:25:11.559240947Z" + created: "2023-04-11T09:50:00.576592769+01:00" description: Trigger OpenFaaS functions from PostgreSQL digest: f47cd883be4d8d2d39f6b288bda6bd50673b3259eb135db931ae86a0ff90d3d4 home: https://www.openfaas.com @@ -7517,7 +7543,7 @@ entries: - https://openfaas.github.io/faas-netes/postgres-connector-0.0.3.tgz version: 0.0.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.558938117Z" + created: "2023-04-11T09:50:00.576345871+01:00" description: Trigger OpenFaaS functions from PostgreSQL digest: ee3e01c2ff1212f7bb74a328a91744266e7c22921be50eab12a6324434cefbfb home: https://www.openfaas.com @@ -7537,7 +7563,7 @@ entries: - https://openfaas.github.io/faas-netes/postgres-connector-0.0.2.tgz version: 0.0.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.558635716Z" + created: "2023-04-11T09:50:00.576102443+01:00" description: Trigger OpenFaaS functions from PostgreSQL digest: 06f343bee14de814495f1a2d902a2e69d4df4c4e067bd6a5a68456d4a1559814 home: https://www.openfaas.com @@ -7558,7 +7584,27 @@ entries: version: 0.0.1 pro-builder: - apiVersion: v1 - created: "2023-03-14T14:25:11.565450929Z" + created: "2023-04-11T09:50:00.581706949+01:00" + description: Build OpenFaaS functions via a REST API + digest: 3df2ac40dc4e2fc47d82c0321d49977241c34f20a20c4cb8a5292a7f4d9cbd69 + home: https://www.openfaas.com + icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png + keywords: + - imagebuilder + - functionbuilder + - builder + - functions + maintainers: + - email: alex@openfaas.com + name: alexellis + name: pro-builder + sources: + - https://github.com/openfaas/faas-netes + urls: + - https://openfaas.github.io/faas-netes/pro-builder-0.4.2.tgz + version: 0.4.2 + - apiVersion: v1 + created: "2023-04-11T09:50:00.581377688+01:00" description: Build OpenFaaS functions via a REST API digest: 8ee06f57f46f4fba919c780a94066b6b78268e2bb9a0cfdef09aed7d6cece951 home: https://www.openfaas.com @@ -7578,7 +7624,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.4.1.tgz version: 0.4.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.564763296Z" + created: "2023-04-11T09:50:00.581056537+01:00" description: Build OpenFaaS functions via a REST API digest: 8ac362097f0814fd1e5b8dbd5cc2b2ed6db9ef4701fa9b27cf405461b34e614a home: https://www.openfaas.com @@ -7598,7 +7644,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.4.0.tgz version: 0.4.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.564236328Z" + created: "2023-04-11T09:50:00.580742687+01:00" description: Build OpenFaaS functions via a REST API digest: c30e1bc47a5e373053f17637609358e3c6f6a4db6cd68588e9c8f4ac1ede4713 home: https://www.openfaas.com @@ -7618,7 +7664,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.9.tgz version: 0.3.9 - apiVersion: v1 - created: "2023-03-14T14:25:11.563694749Z" + created: "2023-04-11T09:50:00.580421066+01:00" description: Build OpenFaaS functions via a REST API digest: 350fd3d4341ab5ca5c57c098dba73ef22d5f097a443350c812ed6bffcab62d71 home: https://www.openfaas.com @@ -7638,7 +7684,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.8.tgz version: 0.3.8 - apiVersion: v1 - created: "2023-03-14T14:25:11.563182002Z" + created: "2023-04-11T09:50:00.580111076+01:00" description: Build OpenFaaS functions via a REST API digest: 2cde40035be1703b7a2650edca6abc42cb68a2c5d3dbae4830a553084c618ea0 home: https://www.openfaas.com @@ -7658,7 +7704,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.7.tgz version: 0.3.7 - apiVersion: v1 - created: "2023-03-14T14:25:11.562775568Z" + created: "2023-04-11T09:50:00.579869668+01:00" description: Build OpenFaaS functions via a REST API digest: dfd863b3af4dcb672b6cb999d96a263e20aec3330ecf90dfd4df6603a7f7c909 home: https://www.openfaas.com @@ -7678,7 +7724,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.6.tgz version: 0.3.6 - apiVersion: v1 - created: "2023-03-14T14:25:11.562277931Z" + created: "2023-04-11T09:50:00.579548807+01:00" description: Build OpenFaaS functions via a REST API digest: 7b96975b0140d83a9d03a8a630716adb58113dce86fd5f676f317a8b7172016a home: https://www.openfaas.com @@ -7698,7 +7744,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.5.tgz version: 0.3.5 - apiVersion: v1 - created: "2023-03-14T14:25:11.561773264Z" + created: "2023-04-11T09:50:00.579244597+01:00" description: Build OpenFaaS functions via a REST API digest: a50f2a8bbbbb8b40b91649fa29349d0d2f9009dba7c0fc43a91b20252f458771 home: https://www.openfaas.com @@ -7718,7 +7764,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.3.tgz version: 0.3.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.561446333Z" + created: "2023-04-11T09:50:00.57902997+01:00" description: Build OpenFaaS functions via a REST API digest: 91a9569a561800b6385eca1008308b055e1eba0cb16159212aa883270213e711 home: https://www.openfaas.com @@ -7738,7 +7784,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.2.tgz version: 0.3.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.561116081Z" + created: "2023-04-11T09:50:00.57874537+01:00" description: Build OpenFaaS functions via a REST API digest: b2edc6840b2a1a2da795c3201a05498b0c85819c4b1a6dd13592364d7f7d44fa home: https://www.openfaas.com @@ -7758,7 +7804,7 @@ entries: - https://openfaas.github.io/faas-netes/pro-builder-0.3.1.tgz version: 0.3.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.56079499Z" + created: "2023-04-11T09:50:00.578342397+01:00" description: Build OpenFaaS functions via a REST API digest: 559ab7a218ecef5b37b29117955fed21a9ce5a51aeecf539e85ba635911e3805 home: https://www.openfaas.com @@ -7779,7 +7825,7 @@ entries: version: 0.3.0 probuilder: - apiVersion: v1 - created: "2023-03-14T14:25:11.566863248Z" + created: "2023-04-11T09:50:00.582153933+01:00" description: Build OpenFaaS functions via a REST API digest: f143268f50f71590b7138d7b28570b43bc1c7ead82a720110b651bcc3d66c271 home: https://www.openfaas.com @@ -7799,7 +7845,7 @@ entries: - https://openfaas.github.io/faas-netes/probuilder-0.2.0.tgz version: 0.2.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.566235676Z" + created: "2023-04-11T09:50:00.581876944+01:00" description: Build functions via API digest: 9b23240d618cdd993bb2586e073febe3ebb357fb8cadc708685d581e58be8ef8 home: https://www.openfaas.com @@ -7818,9 +7864,9 @@ entries: version: 0.1.0 queue-worker: - apiVersion: v2 - created: "2023-03-14T14:25:11.568675729Z" + created: "2023-04-11T09:50:00.584129389+01:00" description: JetStream for OpenFaaS queue-worker - digest: 6d310139ada0ca2897e2889e62625d312b13ced579355b734bf41d98bc67b512 + digest: b0713458ed5529c40d284bdcde3d7c63843b1cfc0c40b56b743e3904ecffeaf2 keywords: - openfaas - jetstream @@ -7837,7 +7883,7 @@ entries: - https://openfaas.github.io/faas-netes/queue-worker-0.1.5.tgz version: 0.1.5 - apiVersion: v2 - created: "2023-03-14T14:25:11.568341638Z" + created: "2023-04-11T09:50:00.583805878+01:00" description: JetStream for OpenFaaS queue-worker digest: cc986b6cdf0aba340bdb899b6ff72264f1f9a48b0bcf62f826a75ceab1069fdb keywords: @@ -7856,7 +7902,7 @@ entries: - https://openfaas.github.io/faas-netes/queue-worker-0.1.4.tgz version: 0.1.4 - apiVersion: v2 - created: "2023-03-14T14:25:11.568029877Z" + created: "2023-04-11T09:50:00.583535059+01:00" description: JetStream for OpenFaaS queue-worker digest: 2294220420db1faf000576c1d35e56648420e66fe37c915f16b1a1161381bab2 keywords: @@ -7875,7 +7921,7 @@ entries: - https://openfaas.github.io/faas-netes/queue-worker-0.1.3.tgz version: 0.1.3 - apiVersion: v2 - created: "2023-03-14T14:25:11.567728897Z" + created: "2023-04-11T09:50:00.583284441+01:00" description: JetStream for OpenFaaS queue-worker digest: df89f7957c4ad3545dc71adacaf76854e8c3d7f267e4f38632b572697dd65b6a keywords: @@ -7894,7 +7940,7 @@ entries: - https://openfaas.github.io/faas-netes/queue-worker-0.1.2.tgz version: 0.1.2 - apiVersion: v2 - created: "2023-03-14T14:25:11.567479239Z" + created: "2023-04-11T09:50:00.583022842+01:00" description: JetStream for OpenFaaS queue-worker digest: eabc088ca3b25089014d28c2b03183b97c472bea7d81e98bf8ca5d485d15d4d6 keywords: @@ -7913,7 +7959,7 @@ entries: - https://openfaas.github.io/faas-netes/queue-worker-0.1.1.tgz version: 0.1.1 - apiVersion: v2 - created: "2023-03-14T14:25:11.567202999Z" + created: "2023-04-11T09:50:00.582751833+01:00" description: JetStream for OpenFaaS queue-worker digest: e0b5a60f4d44c2b2c19987867fed6d05ae9d147b4b5c7b77b6d25609ec4c6ebf keywords: @@ -7933,9 +7979,9 @@ entries: version: 0.1.0 sns-connector: - apiVersion: v1 - created: "2023-03-14T14:25:11.569745136Z" + created: "2023-04-11T09:50:00.585292627+01:00" description: Invoke functions from an AWS SNS messages. - digest: 79271c77e8748fce6b5ced4641066123a953278e91150917099638101b900c47 + digest: 52e6a029f7a89359ee48e12cc8f45876fefc15763378c56f3e0c468ffba38d71 home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -7954,7 +8000,7 @@ entries: - https://openfaas.github.io/faas-netes/sns-connector-0.1.2.tgz version: 0.1.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.569382393Z" + created: "2023-04-11T09:50:00.584930655+01:00" description: Invoke functions from an AWS SNS messages. digest: ce672109ed80fd328eeb65bae64483bae14d79bf49df588e476dd3ac02166837 home: https://www.openfaas.com @@ -7975,7 +8021,7 @@ entries: - https://openfaas.github.io/faas-netes/sns-connector-0.1.1.tgz version: 0.1.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.569025731Z" + created: "2023-04-11T09:50:00.584563493+01:00" description: Invoke functions from an AWS SNS messages. digest: 1738055881df1912aaa0bb5eb5508bf133f1f87b20b59c04feb5cb9100d2cbbb home: https://www.openfaas.com @@ -7997,9 +8043,9 @@ entries: version: 0.1.0 sqs-connector: - apiVersion: v1 - created: "2023-03-14T14:25:11.571964061Z" + created: "2023-04-11T09:50:00.587156109+01:00" description: Connect OpenFaaS functions to SQS topics - digest: 96f0c258b3aec248d30be67f1d84a590ebac08a45b8b595d2b320e5c68fb8abe + digest: a4f8318bed981ca0d78b099c5966b61f411466ef8e34aded11c0c01ecfb47b9b home: https://www.openfaas.com icon: https://raw.githubusercontent.com/openfaas/media/master/OpenFaaS_logo_stacked_opaque.png keywords: @@ -8017,7 +8063,7 @@ entries: - https://openfaas.github.io/faas-netes/sqs-connector-0.2.3.tgz version: 0.2.3 - apiVersion: v1 - created: "2023-03-14T14:25:11.57162533Z" + created: "2023-04-11T09:50:00.586948222+01:00" description: Connect OpenFaaS functions to SQS topics digest: fa5a1bf9a223beea673e1a21af80066af5b1ffeb51cc47d001db458d5eee1d15 home: https://www.openfaas.com @@ -8037,7 +8083,7 @@ entries: - https://openfaas.github.io/faas-netes/sqs-connector-0.2.2.tgz version: 0.2.2 - apiVersion: v1 - created: "2023-03-14T14:25:11.571298129Z" + created: "2023-04-11T09:50:00.586711855+01:00" description: Connect OpenFaaS functions to SQS topics digest: 6d9b126365656d66ea8c9deee9b1bcd77e83fb89aff06d1ac1ccf722a9b1bd21 home: https://www.openfaas.com @@ -8057,7 +8103,7 @@ entries: - https://openfaas.github.io/faas-netes/sqs-connector-0.2.1.tgz version: 0.2.1 - apiVersion: v1 - created: "2023-03-14T14:25:11.570985488Z" + created: "2023-04-11T09:50:00.586456256+01:00" description: Connect OpenFaaS functions to SQS topics digest: 510aea96bff3e013fb909d7f5866ea3b97320d48963857c09996da3d5583dba6 home: https://www.openfaas.com @@ -8077,7 +8123,7 @@ entries: - https://openfaas.github.io/faas-netes/sqs-connector-0.2.0.tgz version: 0.2.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.570679047Z" + created: "2023-04-11T09:50:00.586175417+01:00" description: Connect OpenFaaS functions to SQS topics digest: 98cef218fcc6c3ffebc9a4ce77d6e8537623208e1c0af48a5ddf0ba12406279e home: https://www.openfaas.com @@ -8097,7 +8143,7 @@ entries: - https://openfaas.github.io/faas-netes/sqs-connector-0.1.0.tgz version: 0.1.0 - apiVersion: v1 - created: "2023-03-14T14:25:11.570374957Z" + created: "2023-04-11T09:50:00.585940429+01:00" description: Connect OpenFaaS functions to SQS topics digest: 9024b049319bec33ae2110f292c16c52a7b068154d6fa5387c10732068f6bef3 home: https://www.openfaas.com @@ -8117,7 +8163,7 @@ entries: - https://openfaas.github.io/faas-netes/sqs-connector-0.0.4.tgz version: 0.0.4 - apiVersion: v1 - created: "2023-03-14T14:25:11.570057606Z" + created: "2023-04-11T09:50:00.585618188+01:00" description: Connect OpenFaaS functions to SQS topics digest: 343e4c430df3a5e83b77585c25b60da4e2507e707131bff685ae39ab59834d22 home: https://www.openfaas.com @@ -8136,4 +8182,4 @@ entries: urls: - https://openfaas.github.io/faas-netes/sqs-connector-0.0.3.tgz version: 0.0.3 -generated: "2023-03-14T14:25:11.180237545Z" +generated: "2023-04-11T09:50:00.215697837+01:00" diff --git a/docs/kafka-connector-0.7.3.tgz b/docs/kafka-connector-0.7.3.tgz index 53f4eec2124cf1a50f8d271ab4378d33091b3eb9..9a3cd0154565195eef6d4d27359758d8fdb71487 100644 GIT binary patch delta 5071 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 diff --git a/docs/mqtt-connector-0.4.7.tgz b/docs/mqtt-connector-0.4.7.tgz index 356afb9907bd8d2c9ac14c0d29b5cf9a6a678c38..2e64eb6c6d5e38e6457df7fd53654d3b1b2e13dd 100644 GIT binary patch delta 2538 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 A0RR91 delta 2538 zcmV4Ua$SX zck<%sNq;ct4f?(Q%ihZ;z5bv-IDP`XFDS#-ktS z08Wi!W(AXkDdL`+PD7N)WrUVgsiV_>uc4I3c$AN*@v;{FynF#Yf8f6)5BmOF{y(Ql zj_L~sfIa@-e=%6||3UA?qyIm|U@4to2$N|feI{xi*w`1L*_lT~VwSLosu22wbfF7x zQl>Q;Ou%cJW(g7-5kgS*$+J&^0sccz#xzk#ND)gemzi!s$o3kge^1Mk)mUL2n|jBX2ua1rALCT?rN%^lGqL1#M^!cRXFIvz95^wKW= z-Y)WgJzDW!W11yYqYB==zkGAy>ude_JocUcj*bVd_2yMl+TonSd1%8 zlcbC`&7I-HhXkoY7>gtke+vs?5M*AQ2uEnA1x!%GQsiLlsxkHn`BCH$Q4R~Lqp8I_ zEy+S6CiXO`5P@kMGG}P;Wp$Jb3Hb_U`3NJOI0TQw%?e;7A6!E>0iGz5hj z#w7o9m47*!r(YgFuY!@5q)6NCD?TjAOirq zb($v{d{=8Qz6<_Gmv>4^=MGSdte>(|JB~pz* zS3Jgfk}TmQYhp_Sby|3*jM!fV6B=wZTGM9qm)i4@`ce1wvtM&&dfGfZLy zRH8fcU~EE{o-zebM@wssvv(H;)&x_4+T( zG8N4GWX5dIg6mN~UeKtDZYtpqw+CIar|LQys45 z7bQT~s(%{HUMY|mi8MtXW9(G75x=ItKU*Cjd?o@{Jifn4)+yK&jYm7gTgO>dm)A|T z6=(O$SclK3)SeiJP}Y^Uz@?Pa3C7-Nx$`AVF-d(j4L<*^A7*l1=8^06b?N0Te9DEk za+=eftCp2DQG-&PcgjgeR+XhLS5Pxq@IPx_bbqj`>~aWi*uoiQd=p_l8PkFFocdRNp=dTq#^RJ5PF}Fmlidnb&joSn-#gaNb(eG0(s?aO|GY_ zNn`y;q7G{_<=i_9ZfScpr1A_@vvze`)MnOH!HuG(UfU0LrfvyqiIlEWT8*2E4Q7)p^&$u0&2U+_U<376Xjj3tGv47zkHQ0K5-9*-AK0}Er6I|h5%1!XYh!001 zULMH7;_PEn+))knGTW~~?LuoC-FrmJrT`VhX7(K|bL?zHbzyUuik$0VMz>N3=2Qj_ zSasH8Sfqz@j z;zybq4xI5AxrY9Wol#}m26La|w`Oao%|T(qmXk>1_dHn^H9XRS{5*m z_O5tUc&gnrR`NFPABj1`I3xIQ3xyS4)k*H+P+nD5)K{06pGmoPDOwS)-;~~;{`UN@ zmH+$Z=*=cvNc?g+=Dz#C;}`Axe}8avJb29iA7XUj1JxR(>*;cD9u`yNU_%h&6Ub;Z zqZ3p<>B8ldDNuQq38@vRDJBU_5;1aF4datB2`UnaCBK zpS@AU&!qSTBTal3BMls!6u%IEt|Ad*@CT}#w*3ExH?Pm$zVXxeOY+#`|3@!R+WvoZ z+<)xuIR6HEwtdnTkpe=Z z7;4XjlwG(i%Mg^?d%k2D5@Nn)Re{3etNIjp-m2JBO}3l?ZdY9gmLPaz@QlP?q@|(M zywTWDtGe52?5cUR-Of-~W$a|?nux~7Y*MtL5mG+7ZnCRdbLW*$$Sr)Jl7FVCQ9^6n z!dcY_++I9z+`=2z=yyM8atq#;0o#`j9*5DgVqMvi#?>YbUxQ+Nl3>xtA)8y5GEuid6ih_W#TtNy+Gt; z3TcjGDa}BPYrXh$h{ZUap@OqIxjj$H=g8B>ZN_?xuM42RffVj>qvhe!KC%00030|Ncqsj{rCT07-D( A`v3p{ diff --git a/docs/nats-connector-0.3.2.tgz b/docs/nats-connector-0.3.2.tgz index 633cbfbddb342e5ebc022be83bc1f5703822488c..e00fedbf0743407bd3b0b95095a34f55543a330d 100644 GIT binary patch delta 2925 zcmV-z3zGEw7yTEIt$+CJc>L(}(dgc2d^$cky$7Suh+$_dw4v(W=#zQ%C-(@3l*aqs+yUfRc9&z6LAqyt6shSt4i{t@FYAY zUt|4y`oE&QK!5$24Zs2YACJ#Z`uczJ==e_mzeH1*a~4xQfiWR0qYIqCB8^qZWTT7S zO){~&bwo%+HH)XTFzE!0Dv*$)##Ah*!8P5$-{1U1%HPvMac=^wp7?jQk(hix`hH|b z;7l8kb1*Vzu?CGfRn%Yt(FPLaEMo>0@n0t}aL^2D^M7z)d*_M?Q(FK~sB&%As=%)4e2@E_sCRTEZ4L7PcB2JYQve0}( z+K*F98&hwHYnG9cOH`0bZ7e6^pQrZO8z)O-ScbAN4potBqmX70Q_eN19;YSE1Wrbp z5QViR1AkEXzCdle>IZ^OKW1`~M}{+mwo>cD8~E zZ7AnVEP8%U2(LL(jWCy-%Qcu39kD7(Z!kjlT7SX<4QylqR;C7%kdR+w0WlS@rY25Z z&nMNez~w^QUK$aYsjTBh7OL^#CWL$g%Ob+qaNi*i@bM#rZ_r^1Us{Ws(-`6E3KGn@ z-1N>X2WWw@^6W!SMdEbWIv>tSOA%rhG9V>g013{SKo~UU!%`0* zXui{e8wh=@!RjxB@BF>PQodTDQY=BZv|go%;rzt?WZ6YApR*4z2%5oAB<{CI_(UN! z2(;!gFF4=8`+{;dXP5xZbB8@7KcgSr(SIAu!_LE+vX~YcLCXx`Z$*Skph4|tJZH!g z4OF3bdN8r(%cM-hchSa4}{7ap}pYzJ7!?bIEM(K z&=#i#>cE$1_XyWgbp_1kwLGhjwM;9Todh=$I@ire-?#}(ez^I%ws6+6@S}8$dVhnp z^Y+#NofAKY!M8g2Ru6ikdA_&VX}f-Rc3^91t;&@5e7me}dCR@xsW^?0?_FX?H`qC$ zw!HoCGNJ>QV6S)fY#jXm00z^+?R4sE+orqr-)}q5fA30VC``Ed#9+{Y^Z)GhxPSgX z8jtVdzh9)a8&NOD2*DJb$e>0LjqMgc@q^_|9CF!2z1*6YGpuyJq{)58>*{ z2MuJFOM${{1yS8sYqs1_ZEJRQ6*O;l+q9BHii#N*ziM9(E_?vEA}UYf$<`I3A~=G- zBF~1)?=>ilWtO2xF!8hY(H&S-a}Srbe-JV`^daJ#iDSFByM2jx547z*b$|SLTTDCq z>|cm&`kX2g$oT}SNZk&)j0(EIB#1V97a&ERg*qL6`ik!rcjFa>HL<%TZj0An9xvg2 zA&rA+{Wc#6t3so;OXSbBONST1GhF&ACGmacJOV5#}Be>(eC0_4eLYX z2S+U9><0$xM#2vc+9ki;;4aL5OAfBjKJmA@ae_$!bpYW2%g9+lLFp7xqyTzO~M5; zL-*IiCt>tYHFSTg7wKYX|5T59C5FvF5sjBc?qc7XJP7qVClA7iF3E$?WI1{8FLDI$ zsA96v@cijBO@G2%$=@+HBxDKFp{G;wcM`62EE635fhIK%SzcCVUg~Dja zi-Fec8tNhfT|`z9Lqd*@;I%@9?+d1xL4Qq10MC6wyT)s;(Z9$7vO*h3 z=?a0uTB@Zra`l|bEVwgLAynz>ITH!|+DUpd;ez;yjCC_{`_w6XY{gNBO~7P$l(Tpl z*uyrED%jAB2hRQkbE$%+OF-@C=>9`sBIboN#~lzx0_9p(sGDi57@trAu3Q9FAnxUAW!8$a2KN!_8c|kw0tjMmf3#@AqW6JqMZyFNR|8P)$JQI&@FBYfkmG z%y#j(X2Vw#Ptk4kY6m`k{k+iQvfcKL#cYR@&bflc-ir1$Z5;@YR|wG}FZ zX0v|pH+49zs(W^>kFROAir<{chb2@E5q7JluK{>T$VHAZn{NPVoI+k7+l97E<9x0l z&}d+Zn;)F0etlT~{A~tQEeaFwDnT6y6OX+&gz==0OLm9`UJ16gYyunPa zDz^R9(__wE@pyKafA?aqyiHta(|n*cqToct`L=b)#G4Ys;_+wx@&js XuHCi&x%Te>00960j@>Pc06YKys|3L3 delta 2924 zcmV-y3zPKy7yK8Ht$*lrJQ_b5J-RmKs?#vTgwbI}wLvwk z5KOsT$f-6oUScwpIelMXn2QBj;$|&Xq9-JPd4-Y$pi!+@j3fZN(Md*`Fq8>YjuJD< z_yj1&4}b2U1rXFu$9_T1nI`_Zt1U#!LdEEYs%GYA)tO4bL|jDFs#mZ7s*?ODJPD7< z*I56a{;w!6P=9}B18_k9$K&&pzW$$_pWNyHmuL!e&SI)3FeZd$bb%9Cq_GN_Y;>`^ zNhWr;jtGgUX7Q93CY^v$1rl=9n2H58xTYKU`po!QVH-L(Ebfq_TI#7Zu);YRgF#Ho@(7MgEJ z`*CV%W9kiY%`#GQi3(DwjpaoA^VB|j<79~p%TN}^p(=816w(Z0%DE=hN^V1h>;9kXfF@eE&G|KF=U9pUL@}qW#O#U%h>H5ts? z4dtAPMbFO(;WbC95$2L}xdxM>BUVM}4Myl*OMh6PfsHJ{%G6*I67q{IAf^J=)WoUl z`J@^axLj!4OCtg^m37?6LNz|zgphAwSwt8c?mGkmK7NGo4LVHWOKWj+8Y5g?L4rA# zo8EZ^!JOO~ogHnb{!dfnIVv5R{8L@Q1NwhFI_cm4&d2e4w<1T-3$ zGk=a|lj9GW6-%7r1Re~pu85@~&pzZ-BusNgh69IEcF0_ z<~uF8fzZbqto}my&fhyM<*OAc#S(-|>s5*v&QIJ=mR%I{Ir{*EpcxEB;(mLCPZUyv zKx-cJg7Xc$FDPeoh6&I-ci2PnGy2gTy??Ph>^!U~i)o<|w9F9xRz#=-8q|KqbA~+8 zKoxqY2NP?)Ov*HT7j2w0p1!=WwAP5~9OL^Tc|Hf_ZIvIy-gYSy+6&IVV+PiYbBGWM zZEvckPHn?sG;_b@61&h9H4nVvCeq4Yqk&l5U#F# z&_HIn6e!GA5Y>IPX3GuLwq{pXLGxy}O)EL1sF-o_tM>Ka!UupWqVgo3Y+WHLf+P4V z@@%;LUW39|W*LeE6F+Mo-GNm#_i$PJ2O*O~A0ob)IJSGc+n0#f@rgM0aD~ysMF!6ulQbZH(pU#6T4gDws`&J@eD%IqEYr^HXpR#YxPNHkprqm*xVHp+NUbYLddepAQuPkt+O!JPtqe%Fdo@UGm!v?!xT1Fj|8hn17_kSfQC_vJhsP z(_Lc^hAXOuo>&hDx7kO%ti#P#zM(%ffgRb2gKT#6JH)P)+Bm!l4Q)N_fnA_5Di}|u zOc+!v%6Gx&(;dXJHSleWLMIW^rESJ9N$dqq{z5a$K`@b^Ffcyuj(5YYzmmMj@P*x) zJv*dH~IH3RM z$D>C*{XaRqtN-~j?dWz@e&lV64dt)h-SgXbd#d1iN!j~lx>q-;USO^I8zTW%D2#@@ zh&a zt`I1!rCM4eSI?=;f;%G>LY2OrGm*frouoGtE{LDVST_^5Po2WYRvdNM1WblUIg6Kp zJ!}K1f(^}h;OtK@mnvww1k`?x?mq-3VqQ3N+yP-EP_AW#x|zm`Q5VSyiIYtw3YUOS zsWMhRkAD-N&8s{4goMIey0nGI;YeoP)ti-BKlmA&Fj>2Rz@_tDPfasy!Y@Fzd#lh_ zc{NKjo6U4ezHtGf5<-&HL8rRDvX*VR#h4tr8cQ$Ms(+C$6iu)fSb!aS5&q$Pz#yok zSUoqe>)_XHHY4OuVAX&|a)n?gZ-wRZcWy0;Jb$64tYc_qV6xGrM}HY{HyB?^ zn15o;+Of44tV6^1gHa8W7xV+mitPHjz`7POrkp?YrZKXH@h{R6X4Vr+ASt&cXrq`| zgnr=J$w(i9)xQomu%1^JWQ(UHv!>M~Sb{!R@2o)36o0F7rcKx#c-EAvUcSx7Fhl&<#-oOly7lyOYDbMmgo8_eXY zV%twWJ?7jcZPe diff --git a/docs/openfaas-12.0.3.tgz b/docs/openfaas-12.0.3.tgz new file mode 100644 index 0000000000000000000000000000000000000000..e72e8f8f07afdef2a1c7a69e616d82838b7d530d GIT binary patch literal 34003 zcmZ5{V{~Rg(`{^HVmoD*_nE( zDckc)nc3KaTz-8y9dI-;#oX+4!KF|t#^$m=?bS=Sm_K_`=1KqQpOy2mF;_h?eK-{| zl@*agLjal5pj3V84u3(~q4R_%A|JG$O3Td@tC1Na4U{Nev~c0XMZ^{68qYwUPs@lL z#D)GgX#0x!=Q+D;e0OKV#RL+>$HjfK2nZ17AWKy0?~f+_#66%pETA)_GZb)$>x&cB^gB7F ze+JP@B)%_fF9DTXP>G083>)6u+!P+t22Y3L-up?V3*Syj^K+lh7~h*J1$3>^<<-!{xn*7#NQfKhFCG#84z9-q{23 z2+@O3rSEXm%>+Rgb1^{>srk=Qus>~H`;`|QLP0a!T3d@#80EN4-$$&PyIyB z-${-qPPpfB42~u{mBEQJV75Ei zXP8fhgqkMw$)3fEThZuNn&%yW;c5p9J<`m4>F8i0G4hjz?Jw-suX<>A)FWb7V$#*U zlA3qV+CPi#%faxI8#FD_4hWAt2^9*{<#bvdm|pWr zu}Qucm>^JH27d)g-(0l!-PS3ILdK<-| z6XF&_WVaZCUnDGe_p6aF>d{Zd0N}n~@UbH;(4)%YMyJe3V=W?#&|_N=&Pc-$dR3ct zhi~umLN1g#R*VJ!Qe%{mS4eGUgGs@4Ra;$Td=hlabGgmhGd#(4@hcQ0?q;a2U($DE z4$Tm`8L5W%UT;SY*{~7E_>muuVvLVlV{EESOfe5(;=QP?$(yl$i-30wFa2dJ`^`$e z@%VBq^WDi{ZRcC-sh?OXu^Sm0G?$#1Rh}slLY#ralSKnFk zDiQPR6ah0MLYYy+RFiBNQa{0gB%4j^3;mBK92HIcg{M~hG#QiQs1hCbk@PmXt|O9} zsj$f9NhbO%XmrLPXx1ngBr{f%la&3U9Al1e@Rw|;57Cy)b$qAFWLkhoN9%E5&9w9> z7^z6sTplvt(YqK|Nk*$f0xsgd<+=k4msL3(Y$M%7RK(LohSAkN7u?jv!5jXb3#IgX zMwAx;QGP){NMk}40V?%?wK)8`Fyj@3N)fk9B=SiiNZZgi1VP${$o#?+8Va-c5-jqX z9w`6wUpu^Wr^e6T-JjHtdJI!Oikx7Oz{RC& zJO#1)1DeLdFfz zZt#VmR1V3NV!U)O2QULj7;v~mh0&W1)r5tUH0|KQmpKO6DFxNtg*+5%U9@98%S>Nm zDCLCE{|%Dt5cHlpN-n@UvqzKyUu};Ty>VZsNQ}WvQ*DsjuMlddS;-?)LMvj2p{N8j z#Yh=-OCOcL&nx!SfUQL5u3MoDE6i^3%?`{Cvg*VqD#gUJT31(yEg0EmhYc7@(kiFw z$(MUs+T>c|2zoLa`Ec6kkL^?{VjSqxl^Q{#Ga1FBl~OIVPJt;uoLP;50wOLgaAs{b ztIg^MsR%r(6v;tx_o_^11tM$VVvEgtFt7*U{6YyB@GGKxL4k{v<`9-VxO;5~R|>c} zoN|&FR@!Ib;bZ9O0V&Iz^Lc;)*DOK0v2hX*HD|_R6B5w7bzvyZcmscAH=A%UKbE;W zLlkajd*)~R4e~DGUgZ2XJDDoC?sI?iI(?@U7i@Dn)KYxn)4y8nB%I?coI*I>ktWfe zvSlc7ptKHyu3kAS$w!_uJ`jF@6>dTg{G~)1Y^jgDF36xy@?%<^mbryJG@y_b7s63$ zq^tETCyo8#46qKugntPjtKm!0$(a9zOTC)#%v8xjP99_kWPjD7wPkyJg@|1)hruq? ze|M_c!R1gi$ggO3mh+)mOh=_XhS6| zUBu|M^l7H0@5tj8rNvcf^YuQ!9?C z7+(<~-d?;-Qn}+#uM$@n^$MFCbQ>z$pmj{)?DE^PjNko*S=kz8F)V)DStVCKHxY;LL0onlR zu|Y$UmI59ns<@G4m3RhB!t6I}sqdKcTTh2eZxYTUS@sUwram&jDP7`lY`m#&twJ>( zgs!|;zQ1@>{rlca%cfJJ_j6QvAXi7vl8p;DM}~mx7h18q)pUD(M7^xTl`ju#RhRxR zaG!8HW@Xi%QS5nLem1+A#XmaP4jn;k3ceI+R!|LaZ6S+!G3%%r7f1-FGRbOcY42RAJh>jq6cA?hw%1|Q-{X5=e?Kl`1 zvyS?h)9Z7)Jw%P^HxlsCnAjH%hAmsNC^la*AE+fX+=NfH$WGXg`06#kO7yRPPcZG> zox;0RQgO4SfxrdeH9jH`5cx&c(TLlZ26|_91RSL&FT&7ZMU>>mkqX;m7ti?ciy0Up z`c;LLcLwZtWZa>~X!xPs5NoeQ*@BNk4%_$Hb?QWIXK=)tl_SRt-KjGb9}>osR6DyQHwz%C`Q@{ zX$+8R8LNi}?-K9XsH!)@vZ1LCL}R&;L}?ouBe(repBj+mAh<@N{~A&wIPGW@5AIEh zI&kq>I)3F*pFejD6mq<^(BeBctCM@SHHd58Zh4_FJEY2Kf}lapt!+_IN_d;wKQ}8( zA1&{}-bS9^CgSU@oae2dElpHx4S(g;kS4mOb0G}oV`%H0?Rjal=45(U#2(@oYj@Fe z3#~fklIq@cVzf^IcKY>q`WQU!XW=AI*55tI3o${DI3*~4uqF&krF>W>;7-0Yd8=+2 zp?EBrD)}4y^5x9C=A}1aN5@8vP^M-}PSMSSp>K7U_m5A>FWH%QfgpgV?5^kWpqzyr z<+H+UO*dqhR0TW4F?8a3bz%~b&aJcmotax`>_*LgKfjRrN48_YTI|HxT5J(P7a-3t z>E}S@_-7+@St!MSVsJ*UsFywBtIJMj0@W%KQu59kOkHMT(XgkJ>w;gDT$jo6^~k4& z|DkOO_$lYSGmC})^+kb;JZ2zef)r|4(+8u=VqiUw{bTyV)zoU;Cv^um|ILM&51$|| ztoUH>)IlmJVi8ly?If-sPAkYn$;m+sAB_hGM6!sfV)YWYG6n&$zg9|Z?%4e z2ds6Bic5aM6XmT6api)2M*5iD zWEWe3fjiIl+}HrmFfm@Qxjqx4`ExvCX11)Db-eERl@2S?PD`;wysA(uzs375dJ&84 zK|jejC@i#9*movAzVK_{iTMN_gF(t;RaENL$Cx~9TF9aGh%ypwmr28`c(DYXCT9!> z(JPDMJ9vD`=i`_r9gx#BN;D zalEe|?;xCli6Zqw8owcoW=HG3za;su&!Bw3i#wfROh!e4IZW@puUGZ!5(ZN=*2)nd zjH*1z5%E!6`5ptuYy5plvM6q(z>k6Oo4#&8XLb~KV;$R;Tp)HobsmsQz|XNO8t5B! zk|m?3SdXD)D(oOTlXx#5t&^ zZ{kjQ=W@LlpdmsefKQAselI%Y?=`GbyX)k5Q4IQiTex%4>why5>UGOVP_7?^EKVfw z=(UQ$T&XZ5V;#8$FBL&L^G0u`AvvI@^0=d)a$?QFL>K9 z5PaF3-11r&@2Bd$UOqnI$mdWA{ZU1S;ss~&o4%8pQm?rvH|D}Z(W>KUe)P7;7xE5z zMx@kGmS2D#@MPM%FYAm;arkgKK_hUg#~4`NCv3(w3n*UX$SS$#UgtBWJ^Ktt?q)wU z@t{2fy1@ED#2|~cgd8Ztd~GFyJoH-9~}>CW$wztyQm|JH@n2AZ=~l7iE{! z<$cSW96PJ$dajhTJd5TZ0!k82rF(c=6$W4%dZcfjy5{vQ_c@U9`jc^+QRw%T9g9sV ziI|{atF~P7_ZMrk0#rp_N+h=}4r>>C$UR>;86TMdD#YtRSgw{3Y~r+rD&kPRFbF(3 zN2KJz$|$$YK&wekZhtE(2kxLg;hrYeNg06X6WnTkw}}aGcLlVZG(j5dMs3j<=xzc%Z6QZS1kk33jUz z&NW0x)!Ed~)*6pCh!;u%bp{vvKLlebw{#?!?Yg}EY>V5+L4$tishhWQIgXXx-#3xC z^F zenI6Tz-IRLa<}*qhcFms%ew6Wu~b| zlueCRaQr5;NzLpKBEdLqF;Q`L;7+!R- zMbJhLtXH}mtwvQ%t%>jJuBm;JIA3MrYpXgXjCB|_`BNS)6KTrLx*HYwAOcjJW0;%_ z1GFCTEW7feNCv@D-LvLrm|tXNnXyP7e&TANpm4t>n+1UQ&WI5^w)o73UszB;6Vp_7 z9(lp}AS}&4i$DHE@aX(+)hrM_&s%zlmGMCNK2#V&ODjLFMv)-_lgU|OA+q=|c!b%t zg;(lIghH^^H)H=Lq}D+x`gi+} zQG{8zS;|M&RDjj=`20$JSiv?H8OidLFrNc6UWKnM0m>a~hq1BTNK1}@G79uCT&NT( z8S~9^ODk}FcY~P!70x+~&PdbU5@mOxIb9n1>5B5>O)-vSPlzFrFJ|*js^5AIfeTibSXb!Oa6WnLdAde-G%(ucskKDZi@3ao!3UhQ9xbB-&wK*J`{I)d zv-siYbh>z7arwnFv`wo9P9 zVT=u{A;n0ACT3~rl#~3_e{Vptzc3+$Fa#_X*>+iTIUd|Y_JAqglz2z?RG4uJ4L+3e zH;1PO-|qmcJr@=_l{5TkvpH(HB?=51%xY-gO~ca{D@he}GRbfT0vGgriM;4;HSq`- z7>`9SYsA?>3v(d<=mYGUf907upfY!B)%4}8r_cN+ykNRaV5usX*;jRi$RYh`lkyAIUG$fB z9_?E`<>f}yOTGFx5m9{9o4=x>`*(l2Cmd<#PeXGwUb9#>j;G;p#bNDqv%<}$i8fHd z8D;bCXcm$3Gh+2(0s>DCm07zUnHOC*20NkCgl+^$9^Sxt)f3%TAfw{1%}|Yobe=Vg z)F0yOc@`~{GQV`d*d}?l5be_PXf$iL>9tBA&P~%di?`Ql>m4|LIpmG4aK&)r%}H6* z5{Qo%kmMBe$35reyd`~Z&a=XN20c?(pZ~O#(ePDJIysx<)+Z;NZt-v``!tKIrQ_p3 zshiU1Tj$Cho8c&2DcqCJ`dhtuZPgFKm+k+X;;5(y)H>`Bs67PT(*Rt9L0lhx>cv@N z7A@5z+YtAMKxHQ05-rEtL}Y?*tp#nrxDvCWt6$Z5rayAKQle)58lAfAPVVZVWe=r) z&cB^^J`R@GCXDF%+j0>&evo|UxCmtB`MU+YBcFf%61%D4q4LvWnKOky@Pbq01)iB}t>CvUoN*{VhIM zvfK`9Muy>qO7TMB!S43_w)Io)gA%oK9hbi4uR*}6dB5qwAH@|PV4(2{9hw)p?q!K0 z^qHt{M@T0eIOoBZ&=sMG8O{zW3E{jSlqR;aW@j4Na;I}Pqpwo2mWyHSmP(t>l$-22 zRaeTEbKlLMgmHaQfz(lxc0-rL9I>m-1qNGfb^+tm2Ss|SYu=4`a)649pF96U{IOWw zEwF4ds}19O(d+x-)j=)hUpDwR7wDH%j=iU>An+Us;ZYJ{ug$aJ(EejPQTa_^k$^)+ z5$A6r)tw~frgA`6>Ta9}a( z;~T~=lZA4w?t=}$rcBGq)oe^MZ~tN1C`>LDm-E(xfLVyEh^AnoGNWiOeY&{G^7&g? zsp=syboUhEXyvdn$9`RJ7IXRg%`KRD2EMt)!8Kv__t+qIm<0lq*HlA3Lr}MEY6r4D zw^Zu#X`!B+QhG+gjt-IkdHLe^=Gb1n+lT$*ehD_v*~_P?8JKriiD{Vj*1i~66Rs`q z5A)lxxL7MKN^6O_`cXXBK&Cpq%wjaLwnmn|sn+=0oby6(_AUQk;97p?$GD#e<{z&6 zeHzRv7wwyyZF`0$i@nHv6_?A8wdMy+Od55|XR4mrOj+N zub}024ecemd#tD8xhO_g5+e850docJ0h#IhN?{Ei4%H*X$wMx*cYB z*Y}q=*g&;zyr1qp3!Izw7k_NrvhTvX@l~}RUA>c!)DhE>{!wM@B&$P{U^ggjHOQU{ z6_(vJ+Fe?p5Gcvy<%5w>g)XQGeAMK(N0-C?y*d7{u!TQHj0yFsl7wD%{0= zD`shm>m!7?Wouoa=6WK>d|ORG(|w7OKcZ>|#5vk_%xp(|QOy2w_j2*jY5~T%eE=07 z_^Q6rc|X-1aix8^x_xR*6$Wp~w0G^^*o0;v5gB6BzHw6!QgBmj<5O%tUdLd;;sP@7qO)UMdi@lKeS3JlA5sr5oiNB zS_o-hN`>Ghi$jbycQ(?;z?n&8=S0yhFeLk{u^Kt>4BBzdqM#m{llka9jKvkx8FEsk!n%w8EYBGf|nHKmPQhiqWdD*ei;xH^E_$Y0}o`q9*a)Q1<2{eTkvev}D~#^K!hemDJ!-DM{5-d7q`pYysHH>BH|U&F-I-kw#>MTf zH*M>j&;h&!3{{&Fl_T4=)em=KJa)foHI`p;z4s_vL%nL4vN-z{g@Fds0G;SjkJOd; zSIT=p^o9N1+|%WHth%WBL4qfMq?GjP(%V2T%i|#o9$*X!+sz;b*5fXIw3!S1Y zyRZ`K|w0#EdMK4<3eee9fo3sPINaxXS z0`tXV>LQ>o(Hh)qAO6Z_;4B<|yEV5C*EqE`>**e7-ygduJ8lV5}A1uDr0Q%#?*<9jFB zdsv5y@(}h@Z_BTFJ(Fg$BpzyhQK=?ffM0 zyY8&_COL_nwbI)9UJOlqr&7TX~n$)Da2 ziV!5XqfP{k>W1M+{-<&L%P{$;e8TUo8;&HrF>Inf>=>xxK`oZCj(v*?N$d{etQ~dx zT^Kz9M>eb?_~yA*HM-cg`9d@m2C1$@)+mC^dk+CB_mz@%egPr@gx4toEpR9F`2d>c zo2TyTRki_g8~hl{a|Y^mjeM=DumzGIJ|OO1_J0NNl&lC$1X4@OkK-19F-#AqHWhU# z(ky2kbhZ+kz5Pg_{JL&wSX_tOSZ00pF@cxG4_hD&#&A$=0(ijf_j{OQ8H8W^hKsW6 zVwwBeGuYrY9t;l;OO|P`8l!<9S^1HBTk-TRK-X0ND7-7oQs5=9iW6l*+e8YE$-etyY#c zy>cUWe~;?AW$EHgwfxP2?(I4sSLI&93J>-wy%(h}o(kO;^^WUmJ6qND4c(QEq@vcw ztX2Ywi#*ytKQL=zSE{e5HM6TUbd+m;E>|I@R4Me;$B!HwuC0WVHhjtD4xzRe2)C6= zzc!b7P!9lmga5eC|H%t`AewwW2>u<=cIb~y)XO!M59Gp+mFWINR=mgf1J)5u4ejh9 zG#MG2QqoUxME+Ts8D${BlTh0Es!1}S5?5>Vm%)AGn4?l661z## z7Hyh8?xDYNxVVRLZBA|LL^M zob1v&L8uvV5(e=bvB)`n{tEexZ30Md2DG0C`g?h)@c@0jx{`s4cb}eWA6Gd}eeL9g zw(@B9uAg+rg0NT!T#B5zggMYn^uU9?Xe_g@8xPKZzoa?!|8?2_;o{8Mw?^$=e8y-) z6@JheR@RrI%AHl;ibJ5PyS(c3OEO8sUiMZ?=1xoQel6j+k+L*NxX-$8d;=iu`nK!j zNp$g>dgaLPuif+b)uH!i2n!#FX(Fw;=U@H2ae6bi&k-kX4wP=5d=t^BMkj^w2TTVx81$faF;HXz?6DMP{8lM`k3if6$h8B?Tf)|u!HS)H zT9+xpPdtUQ1P%ffeKAy0%$v}0FdC*Kc+Jx^F?LzJ$9bn>)s3^twLPjg%n z@J(Q>L`VC8P*-I&*Ahr8482L!!~+iRjfqGrjRTgnR!{OL)!da-MXV2CVI;B6C2+WSIQjk?Xa_uz&KvIr7H+5B(wJ%i6oTk^N$3Xb=}(LkZ(k;R zwE}kz$c<`d8nmQ+HkT`>e6+MHX&85oC1s~mY84h#;E>3xY@)xVTl*W6 zf{6cCSO{27O1UnO3BU~MD7_2|foI(?JIn*CbgFI$QsVoS%)n&ySE*Gm-E1PK!ztEl zXv|HzaSG-fZ@V7i? zmz?D~A|FEKKG77pB9hZ5eTBSATzE2>PeYdWHI{i^G~B`d;bUn`b{?- zKFsKg?t^ZiL*(vrC(iSEoX-$y|5}9)9 zmLK8K9vPRUobgx9qguBE*848!KlAeR^Gv=Z(MiWK4)1|2m~%D=2<4xF1jB99aRbu$Zt#{Si+*q1n+wE>$)MqT{lTxx^$MMmhTM`+Q>{84 zddG3IFX(wmCI5Gps}}w`rw7=3mi|_HSxaeNXAc)N!_;IV#TXkz(85vpj!>!dFU8pW zk#)l%G-XxU`4u%hcyCTANQbTW8rHfz=Je)}t;fL6;FEJ=Ilg3^lWTr`;9d17$N=LC zwr4L3X%h|fcl6PX0TL11T>E<`ouIw|$?*`$@luy7$XAnSiUC_VFgY3BSRj|`fHV|1 z%NwlXVELg3HkmSY?xr74#IZ@R70~D|uD+grZn?XJBI-{*ZI4M`-yXd**99&Y;}T;g zqo0b-^1QT?|HP%7w*|xjX>Y*&+fk!IpdexHuV~zJCG#f_n*!ydWKv*vb=H6uUEv(-O zM3@H?_&ey8Tp8kP2+hc1f${MbRTbUNr&#gCT720R{!06bSD&gWH(RXAW{lz0?x_z^ z^p*$1s=oZxDN+I{35%7RXSRSgb7#4xmughRB`abD3Ht&!y(?%TS`McJcE`Rio>bcC zzCl=-Q$tNxZEsu7p4oDbUFX~It+ zROWboBrsKIM7-t|6{?1NSxv`-^i^8(J+)j{X8I?}H29-cX}ax;oaV?^hv`Y@=i-8T zms+}414*ta|H?pSjZSi0T8OcgLd(h)pXyFfm0zW`zj&{!2_9b&Nw_y>QFZ#yb-=8t z!K;sqh?(4Q8CjY2zl~Ylon7_)T6Hp_QVA)kp4UW0BiI! z{vi1vS?_zC%Jck7kOXt~&u^*&kfb&H^*a+Gftfwl>&toOS=-ro)fNXZl$Z|fHOX;n zp6HdD{nWZbEJpnviwRJ@GkO{5`DZkCF0-ZkifC2|R}*l?8UAZW0I!`|F@>ajdpB#x zfRX%Gt$xm8n%u|h?d?L5W%-3x3x;yfeOj29Qdw=syGGyXhRjp0mr981g9#NTx;xf; zWBsbIUPK7IBtf7V?ND=@-pmgQjm-qTN3&JIhob6g57CA$G#w?VPWOKT$y)f)B)xy_AiabBc6@WWG@5dS5cE-)VfR7gCK*7-mr7xg~A~MkN?3;d_ zthmTZy%pbrJOuA)A&gdIX#h(P7iQ_)m9*+WC8x!z)&;TlXSJ)2iaR?}w`xDKH|=4+ ztNFXzUm@E&LB=?w=sSN#B=&h-v738hBp$JF_K%9cW?7JWp#B zr{I1Xh|?A+xF2J^9fKN4Luy??J<$Pw)O+UsJ}vHSVt4m82u-FEUh6~oO-o_m4;~6m z{ys750K3LW?gcnPlx#JZ+^x$1Zy~jib(**W6WdEY_(V&NY7au)WgI_x;hEVzl0Jiv zpNS=UzGxa0csEwNwkw^c@uxe0$kn>EG0^G6i`sFdj>@a_-eJ|P=c);qwO9;acAvRO ze~Va_X;&8PO*l3SUXYzyLxo7KjCWbu>)~XFSE&fCug>kS>pN2oTu$ji{>QL4qp|%{ z8kUtVcj^gMSMi+Jz&#>3S0Ja>K+;uz1>eiqT+}DkMYtzNligW?UE`uGJoWW|w!sDK z-0I;Dunobl;kQ)!24X3J3r3j>IF@rZ z4etq197^#`1072*!b;W$mrdcDTNMiN%)<308RMR@BMW=1(VCQ zzvIUlqu%<*%f}hr?(+XdP0{DhFQi4d%y;P{bos9i9R;_S(>Jkf7=u*v29CW4qKH%E zN!oX4*}vL$OXNge=Mt%3ZxOcp)Jv5D%`vqUfF73vr}P3BDzQ9bc}qM!-g3a!{{4H0 ztfEuspM1~R{`vdlg{#Vwf5Pv}_<^)|3UCz{7SI5tT9{L62#$GU-3Yo?#g(#E7;C|> z%f&C#acwBW-=S39s;{bvl<`z@*1j^iy&{mXDdx0a-Io)@2&pP*qIy=fQo^8g_-% z>nR)k;Zb_NIVXNdZ*ahR)XKQ&o-2G%t4Cm5e7u69?8m?KW$P`U$`cMrjDCNP!JxYK zR3w38GOex&Cc3j=uoShfUf4DkOEoubKeRdW5J0T9UiXXnj^7Z@vsP1vXg37-X}%o2=s0MQ zZhqD>c#R_{%?yeLk!m8M>=iIz^%v;V9@Z*FbDN#b`e~CZ9<7WYO~(;nHf}W!anRPW zwsB2)>733xubVY{c_gI@88FySK;;#p6*-fqg^)p^g6I83P6UrJEqvTR2}GM8;M$kP z{UB6He`YOYur&xdT*cr>7fX(%E!66{&kT77m96 zZIh$qJqKYimSo-kYEiu^C?PXPgIEL}4I#f1l0$w6ln_^lZ}Uo{ zW*_kD*f~Yg8I$JX15CYqgWKw=yc1D*I$OT)XIEUSR4WImRSXO|ay1UuQ6SEnKDe3q zBb+6`Az785mXQf|v_Pf~w1prfDf!dzt3i2G_aSFNET3lZ3La2$_dq^bJJbI0uu?M4 zl4xz4C>V;W|9IF>qll`zrt)6=HYQAGr>R0YC$h#7uuiU&kSOfaw@?K+iFLX|;$$f%gQ2Xoq~_7bQcGm9-AmDzza1Gg z%pSx$B+g+^o!p|2itFsJ2g+U8iZcfKE-Y>58rTa)OD{YrqBUR~`)k+uEfa=&jik0K zar+6Bm45@YA#`LkAtpc=yPI^ZuRl%g**KCL4kWzEVyPc)K)e1L@X&4Dm5S1duba_5A1jV+oRruhPzH>W)6!)-k`q|obyNNQ%l>ys;m?b ztXy-Tom6b%8}SE4s1?1Gygiv*Qevtz83p-Y>A-q%1s>o+O;n*uR;7ACzzsoxHh|oD zl43|trK&6lmu6)@N~skYZWVo(WdSj?v6G68}X2R0=x@c@+|Mn~3UN%4Ld zAG(y?Da40l>fA2$Lv|4PU#%^4hhpfyE;47@6toNT;TP04oAmQc#g3#U9ng(vI1A>P zP-QKyUxnWg3>88Acknx~>DYusQvBJYO+u`~L%o%n373&gZ-8@R$+J9g6+Zq%n#)&y z#E;a?OjImcOj$P9Fr=t2F&uuPRF0}cjY&P1Q(F<37PNWrapu4gpqn(xf@5B(KYi{w zSD6M)oeG=5tSbl~5m2B(TCi{Ghj~sGr+vZE4r3?`O-nLsvk_ltDHJq8RflnH1+xHi zMI%AE&#j5RSh(otD|z%Fqy6hDqA;P%wps$WP-bQ9qy-(RmQ+j7OtkEitBfdA6#K|H zOCM2uW7JQD!Lq(nH<9FVSt^JVvlJQSIHyajYD7;^w-1U3at+CD8YRM%i0x+hm5hRd4 z7z^tiz@&n8OGBc^)_jpSGFd6ivH;(nlFiwmQ4kaO7j_#8P?pc|o7WpZQf)km`^0s# z8Mgo81j_1ht*X3apXOT)lLkTc}0;)@8=hmCwdDg-#PYd zY3)YxMW`=KC$qf*G4cJjH>~H#^rDHQs(#Rshg*=|Vv+9$iL8)MklwO^9pyqlqyXf7zfIckS|nQm?5>>`{3y-BG?%1+wu1=d1ul^jWeOy zc?IZy6J(D&&%%G7{uK8r;c<`nEg;PlLCaaHOcJ`yt*k_~=c?`h>|B+q7&z^IAD{DJ zJ3ppo9o|yWFu*C3AtLybQu}Z%Xi+{f)8!IO-2P^0f2L;papG0L|AC+;@(ltpM0$cm z30lJ2>_vJO`w5jXsgN3OVet%oIDo)oyalrUIBs|ac5LIQU`|T@%4D)hu zc0pc(iu?65p?_18C@;YTA1{GLIk>MEkCIrgHvwH_#i~P_ehaxus~@y5LvVf9b`IpH(ktrEn{ z;-$=DPKdsEJ-Q5g?3>1XjLY>r2XfpY-j+rBz;;SrzP3$S0*00Z!@we;|{by>#K!-!)y4A_+xWu`# z&$1tnzHW0$i4x+(JT$`l@+yxPHJ9pLxwLM=oXkv543^{j*>o*MK{XF@V3b z^sSN175G|Lb(M%hcKahDFOH^#vANn7WZ^$H{#J%wAFYXG^ZXORv>u*f$Fkm>Y`~CD zd5&HmU5LCmHx_um^(ZAG(0nu{f!m0RtX(&GQLTjuIWsgjk=YEtQRL^GT+%>Usv2O^ zA|*O@p5{#7(@E8>o?gJTJf2!&N>FDEB0p7I1}2! z-0Rm-x+uD%cg0V`ZkY?H>8|~KPQj$nGhjRejXPBHVAQl@uOjMVE@n$jMFTR=@e@3GcP1d3GrdBmt-8%zF+T7h9k*}V35X-Iu1m3Di5(qmmTXu-|3_4l6jv%v&!{ilG z%q3FH-;05Wsxm6ChsngT*`Px?>D6Si({Kv5J?fN@n1L5HCe0dY&sHCj^>7&i(*{)Zo9Fci@d>ymhHm&*?eu4M)eQ}dAf=|lR_#* zR4iqVLFrgDSG-!nO%$!fbTG}SR`EBS^|h1&m7BDB`hj>xnzeJ#1e&7~17}g|M(m%+ z)~#>eWXnhw1*9rnXi>-fBTMfuYTk-l7y)&4!?A7LgeK7@2UoH2PfQDKZLAz?Q>S)Z z0_p`eUu`1{D$j~PXmq+07tSIKpZP4%_s+n7;c*}d>`!R3gI~8p-Yy$8=s11Y?;Pz6 zZrT6r9@o&26}lWFsCR!TkNZG0psf-_7x78}~6U?{RB$59$mQ z?fbpwmQp+O@~4uA4)n!+$o=^D_1w!W!A)+-43xslNZ~e|GcVH1HCSme_8A{F9@iSt zcxPXsNpE&NnEE?iR?hhb`vP1`x9FA|atnIlY^J^oN{h(lp%f$cq|Ttga^&{jf++RG z7qY-wj;ix}A(UuO(TJ!rKyLXNii+5Z_q?6E)trkZzY}li+5wSsloAnyA=088(pG z9{=L68nNl?U;**QGwn#I0?+z833CeEg0gaIH**RrlIuB{40CslqWksSRHpgs8nNfg zIhhu|?q;;qf2)yyK>B~&56!%Ei=A`-MgD>R!H@nyjl6Vs=7Myn$~SQT+o6Y(^ooQ0 z_#XhGKwZCu;%G^IPcfzA!%7)?`a8lxFfxlpr58|&ZI=cC4HIDvOzN|OgbO}E-$hz1 zDo+}YeW4_V(MZr0R1L1Wt<}O+MZkNyda^vwxpp(E^=E+o9qOM_8w*L5Ev_9+$>k(U zZ}AXG9Lw`KbY)Y|Il3qjvQ7!JKpGuMaS2GpExqhU&d`X#iqM$*Ya=#2biwGH_!W|^ zap7q;@#g#+M&qc%5t;rgJ&m!CcpRB)aj}mUvc8@qmVC#x-uiUJxs(pd$2LG$Gyt@s zejI@64cFYQ=={%k20n=T6C&{q}z{x1w<)h5{Klz=jUc;i`_cx)^Qw1_Un9(;*djaXpl|uG&NN~Jz~z>WE7UO zIBU4!tc7H7-M>Ngs@%T$Wo>z#9@n$+nc{>C>Jzuisjuf1)yxXR(F~S&MJSV;q&Td8 z1+1e8R~n5;oKjfbHf2kysBGILyBNN2Uo~N527Umz_6c3ipO#(!xg9YZGvz~(gNwP+OhboJT4xc)9GG?k zvDj>P=fv+yaz7S&*&zX50Ky^}@;Vt#5rjNu$x%arJPKNAG-!Q){u+(Yp2TZkjpZB@ zUmeO6nAM@0?W!+Tuu~kU2%XpoTK%>Z?S?hc8q0$M z*Cfk|nxIl0mjVxA#Bk`*x)_uqX30Thi;$hU;}5bdJ?LD%GOIg=XML+oaKh6;&^Ebt zaTE-+2B$%e3)2>tu2z8G2Y1`Ap!Df3@-VxbU3nt7Ee4gFhA?$TTrGi8sMRm*c|oPZI1?v*0xkXe zTuKBIV78X(e3QJ&iP(@PXeN4(KHaW1S=QYIO1;y%(N*0g#I$v_T60&_ZFuE|r_6X3zb@dh^3^cHfAj-d&a9%TEFUCCxMCrPV`|=6>=G^_fp-p-e1`)S z$%hlr%BNA^ebjZMMfIXH8vjZn3b%;IEeSn(%QsW(e$bT?eZ)<@;@eT~s76N3BISIw z#aTC1IT2fO)(%=!_&Rm0VWzjM@Ee(157NCB0mo-dHX;c2uOe_eE~?+Wy?T|eD3@3r z2`f7(za#7!S6c&%-NI~1=?&Uj3K8+iaJV318P5hT4Td-IObQPH+~H)whlbxAiFMN+ zAPIdXd=g=4^5kTQxhdvq9Mptvjpv7oPOHhSH(MT}&6J1XU89I;8487!i9-vG_(||@ z=wgv7+E#v;dYoAN8}vt6{-%nY9ErfF^aM0?r`AW1^9INwd5=INW3~7Ss_ee9bZFYo zyq~yfiB#B{$U)7+ZuF5eA9G$k;`#ly%R+gi(j4jCHDrG@QVx+SQIZ~kx%q+*h|xX| z%m#H9NuZRll!7W&jME)`Ns;TURvqTmmO!l)P?FyYIZ5iQEj6-2V3jUS zVxzxE8zHP-c%|4DCV!tb?F3WDvi>6t1U%6DbALxMPYyRW#`C0sc>j_7_4g`i*P>pv zDOVb)PBzmUy}wAT9TzaYH(QT_>Moh1r?s+KM~kVV`ly%%gqtI77E77<8ng3Q3l%d! z@2ELp2?yvxiRtW(T9w{Web%yeKwGdq# zrjjY+1a1sx%mi^`A2TH9>4LJ_yf&@lkg@3%xHR;-c~`EBwd|1*I!uO`6MglYr>Hnl z_DniY!?Sdr$enajALt~#w}dwVO`|yELavWt?^}XCov{P-)jH8J4iKr=;!PYN2a)J= z$+R&;lnH@3Wv~K<_B>jnf9Xe^4&EQ2{{}`C+l8>u2Tsj2OM{?H_!8!5g!WXmdOU*w zJc0%I>-{A7N*`oyW{`)uDqDO&75<-`*wo5SffdY3+bA<@lQZS^C{x9|O=KpFg?^U& zhY^E?nqzwQbe>@x*b2OfiZakI1Z8*u<_#BE#A=pd*M&%cCoK*$?QTfuO;BH}Ly;dd z?3t_3J4-~gl`xz z8h}_r%pG^W7_4#NKdg<>Xf!%KK34yZMx)}t$0tX}e;FSik53NAFOFY~{xTY$o}Qlk z1&y}V$)+df0<*u29^6*3bDzi~+3K@I?|;Y9XUGf9W$`X@&I5 zhYy-X$viET@zFrXYRW>U4E&N7OE~a?Q62gsi%FK(v*t|2y1m6w4@bnziwRnddx?`o zPBGs)MTDbhg5JMJ2}7fP(!xNR)O|FN4Imx%%7iLAIFo;>j-n4Aoa~KhFs(s@h=ve~ z39@I2LQxf10wY361qmY|;1#eH(L_Qzlc9W_FJs#78UKGJ{B-Z9Tvd<4Z|IkpYC;n@6by0xC*c4W8Nw`Rgs^0+)@d8*{-$7Cg z6L+d9mV+xWTY$)6=j5PFz8rmdq#HBzC_r)0&vZ7`qw_o?YZmcXBI9_Jt#oym*|?z} zpZnCs{*rPb(HTAesaMr_!q84cy{7h0vgVgGq%0XBJ)n75^FdRYQnft!$_Q0k#kPGFZUf1Wl(>Dom{oMby*1p6(6)x^Dr~ z9=DVtKbEVez5B^(D8a$_cdRdZ5H-LFs)Dmo>k@HU^MQ>gU^Z?WhanYu(r3IrC3LE} ztO~6gfQm6m6{fn@vF9=1d^$a-8NXUoBFaQJ`WRgHe*C|apZ>bP_rE8Te|vx3|KESx zlmFz(shWWj@t=(+pB>f`*+N`S(t_AZ1#K=0!!g1=nZOy>#|1H{z)jGri}Qbw#qvB{ zQCCsm5(~Rua2K%&;&HGi?UlU+7I2H#(`0>~lC;0 zqp$u8?WGkYe*5U}=)`JdE+zPht+baVy;hKkT$&6Lg^w$_GOi~mz(40A6|%uCz{}Ye zk_ag43{sszG(`RP@8y4e^x?y28mmFBFY@z;5At)~8Oh@yz-+xG$hLN#{rP+Ac3qxk z{ojM=@%8`H7cX8E_5T;+@lOALif4=Ze;4&%>h-oBkE4hWS7W2=zlO-CYn6QeqtWgk zO|9QhpXVleLatE6#e9Osy)2cBCQe001x2r1qY33q6^qVQlD%BNR%mnLfs5IIa6#yR z&>;zb23Jf_U#b9^_;r`y-tagWmP{N)1`@h{>;c+~7zqXXY;bK59(;v4Twt+8{VE?t ze;*CdZ-_7P;mIkF1DkkB)AcNB^~kQEs|fmEIPlx5{f0skdJqcqMX^n@G$0cwo!VWR zfnK>TjYFZfw5yoMDbYU*UMgx9rJ^WH9X2U+tD-+?S@c`d>#SSjL%UxpR6*lghNI&c ztkNzG0vvjItD>LP=;uE;h9d^jK72U@;aWpJ%-gj6JW3a_@0$aRHgbuWIM0`{arDUw zLg4&@(HRtpWwFgth)9*mbBcWZ4HWj|A}p2@G<1ebz`j`KwIZp%PLMS83XOqrgJf^v zt{6O3K~Z&0(xMP^=OD-VB_!05ldak4B|WJR)Afq3o!RPlm(1=~~(4 z!d%dgX)f8QKvuI1ut#=7@-YpGBv8&$NoCPR73m^I1$C)ELDy#&>3e;=^{te8Iaq;w zbD_tlan4&U)Vs@)hsQGwvjC&OL$)K*qDDuooYeGtC~g*{f?3hQaoP#%f~|T#go{87 zuC+K=?MsEDvQfwSqIo389_`q_y~g9=Yn#a+ch0rg;lq#?BF zSmscvA3GbDwo(OT@;ufuA!;a7IRUEa(@?Y;v8>T*UO`D#qt}E@(0g4$)>k2FNq<7> zL7G@6g=)W@^rUHFv_142D(Z6ulu9k6iLq1YIK4vmVUVp@tPFTA*sC-A+*V?<{U0&9 zg+0J#`+t0NdOR-J|1XYD4|n$eQ#{+;|9ghMB`$>01pY39@N0~(kdz&7zW?@B?-_a( zu2Ib4Kqo^X#@|Mnin9zCir;B05DxRzeGL>5F6aG{%!mL_!t;H^^sT83^!9vK@mt}c z!_ncv^Nsp#h|L+>HcJjM%Mq9&BkP_F|Aq96RWlxD>oaTeyhzm!qz2JbUb52mpYIJm-+x{=NY6hTKfm9a_zZm) zizpVzOJfxD;dgZb+=Zp#+_O)4B`N96|K0m>Q++)}>gyJ)}bWPM94}zX^#*RrALHPs{m;jv z(P+Pl#Gls_=pjtxMsfcGN{NH^yOSr1d$|e6z=crw>#54J3f^>_(4tD=+hk4}fD_4N zWeVq6uZ~08=c#GMjKuzr<3MpI`a2rc#E@?Fuvf*?y#K>y*nM~aXv_Z3_{Hd?xc@Uc zI@<03JjL_G@t>st&@}e*Di;fv+fWI+1;%Z%A@RouDoqcDT4a|~w(2yV>&ILGQ)xow zXL}ITG{>=6QbvANk}65Lk`B*VR{cI>^GBezSxy{;BVv+kq96PHpL(SbODEYK;pS(4 zH^a#;-gm5vp3UFdZ0sSl0ya}kEI{-RP~Rt9{d=o&_W#tA<-<$U^7ohDssnE(n z_^Faz3R|7el7U7uqOX>otILi&Kpx?)Tm$vpp7NEsvL>+?@6S9#sDmTcOz`3Gb& z>cb_>)j@K@W)0NrC1=a+>Dh5o@>u1bQ5;<uHhy zN5{v-{4d8R$GiM5Px2InHjk>rbfj`63|HeB2%Ly)>!JvqOQDxfCeol5aUB9ynQWw! zkiVax?<~?gi1oT8DB#NFWRTqBKfr#p#DjeJrb&!$68!5#vFQ2d&wE*Nkcg2L@nHd; z9d^H@T%2E=6<@sraZA}v@%6>|Yx@-g?0pyd>q|<-*Te^%LD(*#@VZD^e#2d?lW>>H zfOm!?JR?5IXQ+43yEoU@lG&Th0Pm{ zwGm_aka#|6IsMm4=qHWB`u&~?{qL6;Vvy?zuEFGjZTXC-;2@7=}!N9ipS`G zIP|h47JMDLXfLD!?O7>G6kEKd9-#iuAh=+FgZ{p9T7L=|{S^9+X6r56_65)n%j##P zEK_iQP+$j10o`u5w0{M>niKz3YO{7mH#*d3t0t(gw811Yzf$ukQQJ;?SJ0RWCddqP z;!fp4kV)$#{#U-WRc)5f?WN!7JbDU@V^y%dsFe*@rn^Z){dE$Gj*X`W;Pcf==Sl1H z_?0P$x}@^UvrOk)e%%uPlr#QW&0R2B%=%ZAHmwmxC4l_-+Xtrj>(%Mc4bND^BNAjC5tD$^p#u1sa=483?wX zVj(pUkxTX3ObLVYrL6wS)UKq8)rutb{aUD{d0*XYiv4@HVCuKDqMut2Fe0@~=d7LPp5^e#z*Hw--Hg0N zl{oV-7xEh*I}d2TN=51>Nb{ZDys;87+mbHs5=K7pX~f<0)K7)~PfwREZUMK&|BO!# z3;w^8!}0F?=aW1Ik-vaY-F*6$TsB^rRjejpM{-F;lw!{D^3jJh+m{t>!y{O7qxF~I z2LrwwE-Ag~Pf$N%;E<3D?EC#RF=j?IC+5Hu^gi|i686z=Xm)xGp_`}GGnGff6+Uvp zEW6_Zgi$gqkjSCvXHG+@aJ=llAIL@rR*Mnl{FXBBgK7(NI6X#=`CYUcR##)b9wbBZM4n*@zH5v{vVEZ@!wDL;3#5rr8c0{rIUBy`-Jx##7GeH zUwaPvHg++;q`-Y(Jq9ZRx1Eds-o4vBZBIJ?FWtq1u_@#DhT;F8T=j;$=T=+oucKN4Lb27Ru@9fA#;~ z>;0H~{b?_0Y(c~_o()_Y3{%FH|Jz4<8N!$&oSY}wM@0UbGaRUpCY8=)7876PHsM)+ z=V^82MSD%%8(=Cd=AY@-54v3vcZrsmqd8$*AlJv7t9Vh$gaU2yk_^;k7ZIbbgze%G z%>YH%y}=9cG=gaoMYW$Rv02j?35r}A@;Cs5rGd2oMCa%hW(Zag3Z7n)!5{)b1X%%^ zQQ`x0w3X~q*|R~f_w1Rv+E#7l@Lun8^agVUEarg3lF@jvMBksQgCp2iJ^h@9;J7|< zZ$3xHLhXHyeqcm^MIRC(9Ila%!$pi2pt`MsY7u4V2NHVpmMd_kzp{cR=kU9;bG?Bt zD+O5eK1Ua_`I!&MK`ahAk_5RUTu6c}G4pOQ0|_{aXFhR<5hE+rO`pcz0KLPC0zYPB z)Xpo8Dz~2u+d(qcSGSl22>YBOyu!qnSoJx;8l6m%!9- z*C)DGQzh3Y`&lcRE4je#&0rn)isorf-OY3#3%6L7F;*1P&ZYn zc!6Kpp()yyT`mNhxbvAXUe|;U3nW-oyPOIQ6ogQ~M9_IHIh(ju+2wkh)Nr^EWj)C< z7(bpdJ`dcCVFvk(YdSJhWvOoP^l@|cW#f-xz>H`NYiq_Uc3RCfkXx$rIG_@!3~n?R zx}lCk7LnkKA)<`Xqb!?DCR1(}*&RE$>-(X!GyXMWY&a|^EWn#7#Vv=;03g~Y#FERB z-7Nom^b<^;WfuYney-r#Mlkz3TL>-o*~d4c!F>SMdzJ|YB)D0z8@`H9G9bb_Yi>$2 zY!+e&?+tJGY6$NQ{eE~=46k08wjOV1+35^n@kW}3WlN2$TH!fRYmoNfoCEa60r7?< z!a3=dsL+UTV=v$aE)@VX%Py7WMuLEIU}r2#RtZ1|`uzuh;urf_2In9fqFOZZ{@Ufu zMMID#HNP1VL1~T9R+w(!y6I_}bR84G(_piT>B4 zEc=UUkw}{>S+iy#4Kt0XnZ*12N{i&?dI=1kh*@OL!p!TsT(RLMr_#sy?D>RkV&^|R zl)w1O5GWTYBEcEp=pZRX89gr zj^>@ZVTH(LA=pCQB-<9ZwX#s{fC3K-w}T7E`P+J~c_Ah)o)O5Z3)C5bNNDlzohk(8 zTaA5sF&nbyFp$dyM>#+k5^@V*@v2^msu>VEgCI4WDSg9H#MlmF2fBQusz$4_1hKj( z*km{~fX?)zi)uV*bSoz8dCV4J%37;}D9Ql;4MXG1muDC8Z0t<&;yYgQDo^LJ=XANM z#XjLR3}`OV0?;B1ko}Qrt>l)7;5}vYHRrLe3Y%z{5kGb~9i_ zt0}#2HGoqb0%aGxX*JL&lsAaP9<)f z&kvZ{2aue_wMc0|u0#Li@$^3SHEaxm$j!}-4<+%yTy&%CEieEiVl=i}$ieS_c>nff?3XY;J3TsicX2|S@5nh$ zTu63QaI=^y4pQYuczD^G2J}@T!HuXf)uRBRU6w1Ru7$=% z>!U0?vGRV8cC@x?dk)l<;H{OoatjbJUtfEt#v)%#H=d_M!aw{OH56*&cvwCjb(RTEYX@?}3&GzBH`X zX!B!JxMff?>1#ymIYFe|53Dg+!U(WR8fUDMQHR__hlGR5agjnBP^O9YrCJh_H>-(W z)TM0F-(zj>eq&fd?WU!gdd&$&9VW(zWwC9w;?e-cvX-e~0f_9ZQ_nH4SQ=KSyamZ+ z+Zyb`?k+CgkKdmjA8ky9jZx$EVgAf#SDc;TeH^K(!r;%1$Gn2Khh)JWBjBP9%Mv`} z^|(N&JzL^hup6bX;Ict7WHoQ{Mb8@qv4CKf56H%gURGmf*f*BVR9T?e!(pUjWWn6x zWF>qLFv%uxCkhdbGeCOjRrs$=7(b#$50D*vbpx7X>C0%GzA)~gL3cdUAxfvTFK2H- zNpZkVzgi-BF8Rvo=)53-otNw{hi}i264S+b=HTwc@nmr}&eS58GntbO+_32i zhxHWP1*1_K+`+^fQ$SN0S$cP_#n95DNMwu!&@P6Lk4_voMcO}mBO9bON|mgXSAret zxjH%q75e+Kz3ron1Jat;j5Kvv6C6PQx(3WBGI2Hwv0_>v&o^lOA7$B3i`BoPv`&Hw z*&L%-Ikr&h%Gv?pR9&Rv9kY!X*;ie*+;o-bvfhZTfg`KgjJU14hi(+)0cN~TB2Miv zq)}ld=&>o(GDzAE2e$5cDC<)U`i05Yl#jXdItFjnkuNy<+U9PHJ)D4I%Jo*(Fy`M={A0s9Y7bPSnYIa|s~F59JBKiUVF z9ElOz9q;-a_H1vP{Rn4*bp%59BZF=NWFuqz%{z_8{{poB+X>UEZ3OVSsO5MEL&w>q{=pI%quOb}SjC!*h!Xj<>3c37#*g z%jwqyk07fKeZ3knm!{FH4z}SK4#<%I;&>o`T9lb|b~AwyCh>+Q3B(2fK?(;G7`IC6 zv(th|O9@xJO5D#UXch!97!#ixc`b}@%nvVFa~^8TQ=>{iAi`ZBm6q8fCg$imqbaSL zYZmIp135$BB!A8S#6Goa%0QOAuX2Gkep2Hz$Q3otsN1SS^J1yyq%R{4w8(51lo(i! z&Q4?0%Xz-AM!8t32}4c(Z)D1$uBp~;FOi~tFF-=ZM=5H6ot}eKozF zYL=tL4qdi68-hMr2y#g{a%cdeM0G8-s;F8RyXIP=F%_+|rMmGFfVjmNk@x2(@4i1g zy!iJYKb#%d5P;piZ$>+#ozd?8i{0JbJ#UqAf|?dfg&_|JxIxa3jqWkQWbU9y++PAE zs>I_~^2eP&?s&l@nJ7LdbDg`SItFjxYwQofe?c%nvK6c_xS~aV1yTVhQt}$p-Q4m( z{uow4&|sgK3y6U6WW|Pa_WOAGY}i^kW$1;Pp=kZV)DpnY$9KTOToe&I z`fwafgQ_hHl93yQ+8FI9e%J&l0c{)}ThVc9{T_{CL4iUGLJ{eiZXu73WKj0S?MOVH z3TAG2U4vv$0pp7L){@cbGR8rF2ok7^q>!ABuZIF7go$EKR<7+T2@_#&(Wb5HIBT0$ zhiUz6xmwn|kv_&H5_fh-e*(M(Y7FY6_3_9CT@o~C$>*_w5J$D;hOH~<1~it)bc&Pw zAj+lnOh=2pHtPpM^6MQtqbP+XhyxAAqztS+Lv(@yj6~sJ4`haf^2w?Za~)ax!sbWp zw4%8{s%-AMt0_04U~O$hrd$;QzQXyP!-gcJSam1Er<%=#1}&?R^F@On-;qSxqECC05b-XS{1|a$e7m>32g;OG$w15Z}4tF5=Y*!6udH?_BE>- z1IrRJ?nQ((&Dk50*vC`2zM{?7*w8xqt+_3xrJ6^(^N2Uhbz$u~q2QI(DAD}klGr9| zcDcDyg|!@zOP4p~2badQ!Uj+&O&XL2-C?TQCI;wB3BWk;3|Z*0lW}~W8$cfBp|Kx5 z|FwSWqq9>qoFhlkVyHz`SUn4see(Uo3qC{CnVs#~gIc^hVn?N_*64s1wKB3%nlkK& z#KT{6*{~en*erZ*G`AHr@**1F4VqUr%lU_H39hw(~%O@1q^E?7PS)6vRW6LZ`yoU)umhI(r|AEK!bAVq1eWx4WZ`Gtt0D}B`E)QQ29ShAXQqi%WuDUrnjPmh{5 zFpwhuw2!6WoqvsFHa4+x9twsFWg3(?|AZQhw-x`=3cX56qgyx?fJ0+i*p@wuv+rUf zqtyb)WR1bPUTHb}^92yJH-A3qF(h(B@>8(30*eRo^#fmnY!dGUIpU{WU(dLdhi(6%w0GI!B2 z!N#1PSZ{ERtgP~6nSeX@OU=bhUZEy5m({I}W$KT^!SkcP{UY#k?hV^PS<7Ahnj;C- zF1(ykf_h$ybcjb0H#WdGI3)mJDaz})m2k;_Qjp^+@spzD+HhH#Z8Q%|oN3)t8pHuI zV6qe2;0GJ}52tw9vYKbvg<7HjKa=y;71NL)mo2BViUg&+l%i^eMizqoS%~_u1X%L7 z27VCBh8I~6Lhs6(Ol}-fe(HYx3$nxR48>zGq9Qmnh+OS z2yaA0O~u-uWP|7M(b4ZO5H?N9M#Ha!A!l}adciOkvEZ|pE;A#E@!HP5X2;SXxP|kx zY$-lm5OCKbw&3j}dr6|J2_w|TMo1^g0=-Cum0GK73HbQDmm;_$+wO9=)OkaM)Tg5y zgwpArO`lq~(Vxc2)-M`uP9^I z7+#gqz#h^zVux(jmL;3Fk|M_KjUhsPwB*VKN+%rbO=5nE!@p5DIup%ThMiQoUe(Qg zE(0xQLIdiJjVWVQ00XJxamU;43@p6c><4=e6s>5Y-^jpVfeffLCPj3~dE|mK3l!e$ zwo#<-z}^HQj5h5JEcZie2+P6X3S7dHE)f5=_h-@=0szY3{Lut*q_X!#R}ip-!Bf_P z$sfz6G?uGiG^8aC82EH~c@8%}MHBgbPUd?Z%=d-0+!e5t{77udUa!UTckL-L@#mc0!ZH-US5z){lA2^jv@=(=rwC= zA}o`Re=;m@% z+}51{FbP`As2?MeS@4|4M8Z8*^hKh;B71k8Jmz<81sLljDwvSK#1n%5;pE~Hbq=@{ zAHx>J%mL7dX>3uC+@xWXWIZ9XWP*d%JVa?S6%(@=+F}K>T*mNga&@6I#j0O3%_-Uk z-ozhAS=K@AvLsJOEqLJ zY=UYA?XyX)mVs2`)T6(-3!J1TpbO_9MrZ~i|Jh#REIUF|Ho7L&JdXZNf?Dyn*mO>+ z+c;dAH%xyJOLg6~PG#94P_YDUBlX+K!=>OA+5MC5@jH>obwAz0E?EqYI#|%{M)HH!+t#>5*SId)~<`H0-{-n$z^$~ zwWvVyvUXtqINKfVzW#4n_D(g{;1>+SjS=Mxx8|~nIeMOSNCvi}m;w6;Y7fZ%KR+Lh z#-mZl;opiR6ZbsXC*Rn>!G$R6Ec;%FlFdM80E8Ffim4XUr|O8T1P{eU$@42zEASEn z))@F9pp8`H?SYf(tgBITX}nbvkz3@8O6I%_nYe9*x!5S&w5Aq$2-dNZUJ`AH!)Q@^ zdoGYMt(EsVxJaz6Ew3L~H|7OKj;zQ>TyxEr0(9lDX)BCeiPZrrmLCWH&z~oZ>v>DA z6lE>E7Ofnm`50-VKR+ME0czWkb}EWgyR;(X8w?gI!@^9KePZW+nd#>fI~J6C2EcXq z2c9F1`!hbDvQKQ-|6zCj516W7sD)`QQI%!aikmo3t>qs`3f@#7oqJXGf={k7dEz^|=rGoXNJT7W@O3|2s*G0yE9bHMx4nbz_~E?OawAhY8~z zxjqfHd_ikOG^h=y!*}os9>D+JxtwSS(|w2xKxsf_m}Rni$D+OKj7GAd=cQcAh9rDj z0NUKKfzXp;qOH`N=-Z=FC#68bN!;^>?XPNNC z?h|@mA)cC=!B90Lr|!rw`exkRn8`3n#LJ?i8-Koe5L@kmTRf`kz}5# z)Sc;jx(dKLY<~f`c}D@_AW&=94|r#7*>=o78e8r3z4iFPknV5v#JOsy4kz6)QN|Qe z#b?j#cyYCBB(aw7zKg#9lDsztxH}rUz%u%y1tSB8yMY0Uk1kPsEmBWbOwDGctOOI) zHOzik-td*_tl(TLyqWbJ$?l!jrj8ik$8%LM*CmzF@;5sz+j137#x*(|+V8egX!Bk6 zIxEpr9*HFE!*_>A9n5h91A7y-t9Sak z0ggB2S}aAw%b3$)WNc@`)LI@XKPZpPya%N<80KaeN7IFMh|ZMWe=zoFO!kWL?l*h8 zcR?43IhPa^PZBpTT#)=4Y*~5q^((VB$lcPv&x5FCenm+Kn12i!08H@1VXO{>5g(%l z#Ebk41)$e9pChLa-(G+D9wj(uS56E`D;%_ZoJ5`~DgUjJ2`rY~+q-qrg2 zAP--yXC4G0o1tW9f=#67^<0}Zc{q%kWDSja5{6)&cfMwv%|T;)*0>l=zug5llzS5F z_8*bBZziMxQ7;uQKxU@@3`;o^`6@5Pc*{>SB$qK(1f}J|e6Yj42R4@^H^H`kP&Z7? z8c|^ey4~6~Mw5N?%YH#Je{QYcD0B44dE093Gaf$I8% zpP?MMcQ=<~*QfpaCECNbQPy?vJhtC$KS{OZ!Sv@dvL?MBl$L*kYbtFlQ%A+dAgw6U z#}^H7mKv9u>@_$S;A|^PVl}L{wygA9e#_8~8K{aQVjZN3R_Y?hA~PpCEW=%6ceA*W zr8JZsW6cDqR2~hz8Kg!tZHf-j9QSGc$;h6&B`-f#!HYZXU$i%1sI~!(5$$#DgdMaGv}iCbZ_ zuW7JkUU>s#?+KJ@ZbpTe zws-<(YR>QiY&Ap69yrgYyt~K-@4Ll@*hT#C)j^W-n*!A zJi1tHrDR8C(m)R8TFfimi3wrWPG&tZSbgT92p132mJr2DBEtPvRkBgqLQO=#aq^}A z)u%LIC@NZ%Cx6`A+avpDXAg0x4#naZ6vilR&Sv)}(hwYLban{bJuvrNxf;5`JM&Wx zZt6qr5AylMep(2M`}M_=A2a^ln^;&YKdc^2_PmL7vW@4kEk*-;e$1MZ^g~98QsPmL{n3_ zjz`EBIOpSq19r=md+cM@1cCUbg88{*rRgQ_IZU z>{_`z>&iwGcgbttS==X7#*5t0pOg;$Sg1-k{G*^No)`aqqg7k?k!1Xp&EaRdB&7+^#{@D)sZS_*GFo(WEfF+|;O#f+#5s<32bG%6V3p~R&SNRv}r117ES`~ImTN<`K2lIi`Kg>2tO zOOg+F_wG8dTFa{WAWW?)Bfe7wdU4L-%T!g?_7OH!#p;2hvST8~t`F%5B@EOV$25GC z*jVIbW?gQ17zCNkpmzn)pDZ?g`lqiKpU5sji1xpC;UK)Y8C8h~+KhgL8K?rAjf?s5 z!wG?yE zPHea5)yJ~GFyNzjUzpN168N)NQNMk3x>(*9H5qV)VyPanF_d6%MB;QQW(}K`yt-QN z-hvrKk8MxT?KXnNt{QAVHwr>KqVW6E<0Cd^7Z>lJaJUbLl`P`eecl#W*a5kg{Ts0+ z0&@r4q8;(JS?u6V@mh|r_r{anQK#Gp7x(oYH^N78xglYkQD5J({_&_F!|5>+4*Z*) z9w*vb?+XEf?MoJD?|V_HD=9)`^b!8s(Sc8F@`zRU6G?cen^}=~XwpG8^k1wGx}mG2 zGuy*r(*4VY(~*UxzJPzH$F6)m=(N1x4F~vo2)sr&qAZ73mAa|MH0ChLTkD_Q#jV6d z%i5tAKB#5H&IG>}M4&LI*_!8{@xQfNJY&*T!aRh3vqJ}IeKX!i-1}~Nw}0V}C-iHB ze~zClU4+S1O)KbJ+;bqR+l+p9$se+S6UF`@*k!PPW7k4Y6#|O`Ci@L5)g0T0-VaYV zqRiD&ob$P`K=l)S!)ic+4y9VFxzoYX5NSq9>s=0UENU%sRI}*NvD9SYl9DTN6S*{8 zDHLxXO`KArCw}97?WaZLI_o4s`QM}3fjz+iG{k1aFuLH!1Uc9#DsBtJ9tTpx+}}yG zNi~QB9X_2ccm!&wZ z8lkVbx57*NZ?6YpDl#XvHI!oyvqn?x^)3Hy%9q?g5-8)|eJr_)MtqcD8|K6~kYndA zp|FxD&7XWHvLdfX*9lCN!=^30e~M0xF}!msQD{qq=JugDtm6)B?+$lA&dX|T=qQP5 z-2H8TXY_iscgIZkL3Ga~yLS!~0r%M*FufE@rB^Pel&bi%PwXvyZEYlGpY6SRD;?tk zrqkGBPt=O66my=heAq*rjk?zO@rfbXfQIN4`(gDEo_K4EbtP~b2X4f}Jj|Ek$2Sk$ zi0615%}nNdm||K27kPo6Pg_|wLuuQeImhS(@T z-;K8^Fh%1(4wUM6?T^zje%JHyw7J%5_)9DED-4_-EsMUVKku`%v$OO1%a^;a_IAI4zjto{h5i0+=kK1YySd-UC+>uBt`$QN zh}Q%Y9=*+qzjC>}F}f@AaPKowni|^pRcf zBzs3M*~fL0{endZMN|navppDjR=ye-s$AMn9K~K6;SBY9yA&P&g z3h{{gd@iGMn1?J#oa3KOx4+b<3zJ+RNPf{d9^(JstnvRBulIJJ`2Vl**@#%$4vB8@YSoT;~hf2rMBxjuhFkz1ox?z&ZET2cEV~ z6cg^ASO_h$Fu;D_$_~A-iha5dtTEQ9x$F#fcGl)7$HzlQcGwl#9NMrWl z@NKrm_O{vEwK`@FUhh4oP-#2}xZ^CUv=(;s!}%dh`mgK-` z3+xkRC0JVWYhNzF=jZsEyHQuWY|A%Ya&6FYLfw*gh0N4|Zs$MJwZP-c)-=97p$>mi+%Gde#Wcdu1AG`cEI*tVQG{|GRvaB*Y^}HW}of7${4fZ ztF&;og`u%F$I`G;RdZK@;`NSCv^7HP!?SloP}4R_OJ16>xUG3rh+^ml9eep@jsNTA z>z7|x1bBe|@4VRE>+1izuU(%&+x}E!Cf{ezc6WB(%4bApbn{H9ym;dOzslz~sQ-Tm z31QX_fJFsWA=djoMWr|R6=%1^cYf8@pf=UY2s66hMq%Uo`YjUC`6Q+ZP<;Lpt8dQ4 z5w$G!hm1z;0b8gWah>!f*J79lXKS`)eJ}$ieSb*T+dMj-sAD5{ZItQ7Y|G{1L~U;q zn7o!eO7Q*9WMD~5D8BDzpIu_z_OWjF$hO#-;JU)By?yqXc9tgt$^Rb)k{3t}?bSrp zJ0t4qtDt5eeRb;Z+5>`L(pswFu>w*>op8#N)Nr*l=*@h`^-NAvtNkjp6usr>vQs-Lt0(f6y-{3VI(G1jBx7v-Rucv zo0e)iUUER1u*cD|@Us0{hW9?({k5%BPoJmH)92~)^!d`C{}%uN|Noc$#tHyx0|3P< BkrV&` literal 0 HcmV?d00001 diff --git a/docs/postgres-connector-0.1.0.tgz b/docs/postgres-connector-0.1.0.tgz index 125eb934c8eae4ed9d6534400918dc0e286cc28c..65feffd616329bec1545128567fbacd2af50b3a4 100644 GIT binary patch delta 2269 zcmV<32qO2ZAg&;gP61_+Pg8#%9l8I*;jsIEczk&H&B4*p!L!4I=SRSn`en3*xiDJ2NzpoUVPEo0*YKo z(g%%dj*6q!qz^&XNgr^I!f29FCJbc)mFtTcWqbsb)uKc~Dv{RIuc4*fqoeEzJf|4)a* zNB#dAZ4a(y7&KW!B?Z7VP*JP?g_1BqY6^v9kL| zsmy?oJ@}U_V8J*CftZ4kkSL_4iNz{b3cY}#U%u~wRb~V;L$ZGdiFHx%?)2o<>r>Q}KcK>yH+_?Uxs0JEFsA832nJ3MjNi zy`UU2nIdTbji7%gC)}hxi(taIL8aIBDZh=NmlWE_4AqDUjmqp-zl%Jj2J7D`ax~Z@ zgv+TO5r927ms3b_TudQDt?3js0smqI6UsF@s7o|%GF(pWnq<`ML%H@&u(ad|Qo(yI z1%VR8QszIoxxA(y!LSTvVcfdX%IA%~N6=rgK#?BDmmaef~sp zYZ@(7)8E1v-D?R`G_aHfSl${;BSNg>PpE(eHOb8Nd|7QZtfR5Ltbb?5S;QN({Z(ya zM}&WT3pd3W6T^LnzJO1kAbN+6rsxgLQ0Fv3xVwWCb1s)_Ts-tAB!`t6AJ9w|Jz`{t^d!D4v!!8|7)~Qp9W80&ax3`GYrv*0<`Ew?#w-Ej8V@?bC zc8*H16yerxLPP?`Pu(NSE{n;8eS}`WMusAF&z{1UA(#kbObX7I@S&ibO&F#?^W4!M zkzdebcksrJVdr5@SV9Yppk;>eAH^7z3)20JCk%P2fhzQS8y~`$8Po9Hcdk+p zg|$Xh=a_sSk+TUXZ=*btGLFz?5aZr4v zHa)i_u(7mOWy%vCyR2?`OIh(yoQ_A4Z(U*s*V{OuCcpi2d7=lmU_)8!6MO%^2fgdw z!*uG;woQ-ik8fN3zu!h>C``2cjKjd~{{LY3?CG%W{||@5;qyoT|24B*22=xoaku{O z@aVDr_p7u$xS+XEEbwu{yYQ}V3)TL+0IZU}6`?C=yru(3f zQ^V#6cKg?OPen@hK;YCn@$Yhl6ZR2PuY&*Y`v|PL0x4WiOA_R$fHQ#+iC$e^UmB^9 z?7>T!Wm3S;FE1fwN|R{H%)tGB_2iRi{NHNe{)QK`>A?O8KlNM;YD8n2+!VRXeQNR~ z(uaw^Z#F^?X^pMt3u$H^||DR0^x+StqOtze`)zH zcKqn|Hp^Mbk4`?v^?OY}vaHBj_sjxZwMT`7a=!0(&11VE`G+iTtXV44(i)aRxKlB1 zAwJA@65Gk^IAYH>TyCrAw2LKkmOw`HFGKGw#7~E-BGe(alYDf<{=IuePAY$iuG;zU zgPcsbq%LHndKuE5^?Vxl;d}%_f0bH-6p$;Kpw__>lv~GmLKd-JXT(E4ZaEZgTP%Y7|m-@3Aem`pvio4=Qf4?_HHb!Ob zU{(5c4}LmZUK{Z;;`KJ%deDQdwCwmEh%J+CwL5}$RRS(t#&kO3FIrZ?I{lJ+DMyJP zD{9~Qj2pz(naWzhE))}{yf^G_Z2j@=e%7Fo18sS9E~gMusipCZ;L;yS zPHL@8x`?8T31Yk1!}b=vlKXIzqa{y1czK7JoNvA%NXQB2b-`fm delta 2246 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 VjpJbA|K8ZaXWKe?5Csqr{{z9y*1Z4# literal 0 HcmV?d00001 diff --git a/docs/queue-worker-0.1.5.tgz b/docs/queue-worker-0.1.5.tgz index 17c6baec13131ec5b0a02692b871c4dea82b07f8..22a94053cf34ce342b170597c7a143303d0bc2eb 100644 GIT binary patch delta 3281 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 P00960>Df=f06YKyTi9Cl delta 3116 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.tpmC{R~m^x z9?3kb-60dSay_Br9yD)WSD2y%CCdp z3TU3E3+PXmINn{_as*>Ggp8}2t9G&I(mKC<^ZMZUXYF5!T|OWot+5N(o=JYD;0EPC>knh@@roBN0_qS|7f4 ztSjZO&VFd&=o@MXfGkpMAPHN&Z6#eP80OqrNlD-S8N#4WprJZ(RgS0j1X{f?n*g@6 z9LgwY`}$<{3e?R;bUGn_USt!)K^wrS1oglQrV+8@O7h$dPk56Qe>ddG;c4xEjT(N7 z#Qym7YUXe-=m_?}1KqyJxlnziO82+J?Va7dr~A*I|IcuHClpiXwQsJ0{m07uvX9H+2lxf8&B!w3akGxfmNYpVLNlzj z6sRgabEQE{8%Kcge|T)&*aXw8q#%xKpLMCmzT7sMXna&+;QJT(OqzYIT?|#Z+3m;P zJ@=cS|GOr-vMiRH|FHflorpR51R-~pa^6cG8>4DZ8TDMWfV{99taWWTUio0H3R>%9 z9OOBsBF~U(pFiK>&g$6(E(`I~Cud(wA!vRKV@b_iVhK5je`Drc>LngK$B=OtH}H%D zLayPIN}8cY*|rha@Us5;3Vfkv26c5C>j20#^j9`m_u`Li8wa%nj~jMu+??#Ktl)if zc--raZvrp`d&4>I^sP@$wUxbJ`aY51RTg;+*Ug%#^6c&1s2dFYXA`_)Cm1gi?DmCm zyYG2Pnslioe_x_q!?^m&#Y#pyg4=0nW8e3??sp)J{F)(7)hD)V7~k~yim@ZOl_ol_`@Si3UTE(Fxhz#N zwKCx1V+~35pL9{5Hx*-KWwBm_R}lQIh!^8F!J?w3P5eZ}3wLj}Jcm!D`*up#O_CkM z27)c*e;+~bEeYbhSf>yv zH-GyWrARr(P~bA?#_5pzvtIMgr#+ZC)&1EQun+B_J+z1RC$;|z00960qv;ka H09pV5@kq#` diff --git a/docs/sqs-connector-0.2.3.tgz b/docs/sqs-connector-0.2.3.tgz index 3e8246e337bbfa6e98561fe6718b20ae989e7494..26df5d38f61c450fa71563c9db3d40f3e1978e12 100644 GIT binary patch delta 4075 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 diff --git a/yaml/alertmanager-dep.yml b/yaml/alertmanager-dep.yml index 50c84c16d..3023bd09a 100644 --- a/yaml/alertmanager-dep.yml +++ b/yaml/alertmanager-dep.yml @@ -18,7 +18,7 @@ spec: app: alertmanager annotations: sidecar.istio.io/inject: "true" - checksum/alertmanager-config: "75dc7de68123954d3335c1228135074b62d95220e3993a8d0571038f67b6ffd7" + checksum/alertmanager-config: "c2f1584006a8de11ba280c56d56f1054471da20cd5ed9b04dc9fb0a08abebaef" spec: containers: - name: alertmanager diff --git a/yaml/gateway-dep.yml b/yaml/gateway-dep.yml index b1ee5727d..2c12c7968 100644 --- a/yaml/gateway-dep.yml +++ b/yaml/gateway-dep.yml @@ -105,7 +105,7 @@ spec: requests: cpu: 50m memory: 120Mi - image: ghcr.io/openfaas/faas-netes:0.16.6 + image: ghcr.io/openfaas/faas-netes:0.16.7 imagePullPolicy: Always securityContext: readOnlyRootFilesystem: true diff --git a/yaml/prometheus-dep.yml b/yaml/prometheus-dep.yml index 70a71375b..89d4ebbd7 100644 --- a/yaml/prometheus-dep.yml +++ b/yaml/prometheus-dep.yml @@ -18,7 +18,7 @@ spec: app: prometheus annotations: sidecar.istio.io/inject: "true" - checksum/prometheus-config: "134634a261553daef79d649d79b207a01ed4ff2394ad60bb6a01a8435d66bf9e" + checksum/prometheus-config: "b578fa1ca526a86eb12c973a59242e25aee6d28062271f2fb64eccfa0c614a19" spec: serviceAccountName: openfaas-prometheus containers: @@ -26,7 +26,7 @@ spec: resources: requests: memory: 512Mi - image: prom/prometheus:v2.42.0 + image: prom/prometheus:v2.43.0 command: - "prometheus" - "--config.file=/etc/prometheus/prometheus.yml" From a09c8587cff15a1b983ed63b356ee2568c9b3cbc Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Tue, 11 Apr 2023 18:32:51 +0100 Subject: [PATCH 35/37] Updates for openfaas dashboard Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- chart/openfaas/Chart.yaml | 2 +- chart/openfaas/values.yaml | 2 +- docs/cron-connector-0.6.4.tgz | Bin 2947 -> 2948 bytes docs/index.yaml | 742 ++++++++++++++++-------------- docs/kafka-connector-0.7.3.tgz | Bin 6484 -> 6483 bytes docs/mqtt-connector-0.4.7.tgz | Bin 2899 -> 2899 bytes docs/nats-connector-0.3.2.tgz | Bin 3069 -> 3069 bytes docs/openfaas-12.0.4.tgz | Bin 0 -> 33836 bytes docs/postgres-connector-0.1.0.tgz | Bin 4142 -> 4137 bytes docs/pro-builder-0.4.2.tgz | Bin 11994 -> 6134 bytes docs/queue-worker-0.1.5.tgz | Bin 3309 -> 3310 bytes docs/sns-connector-0.1.2.tgz | Bin 5019 -> 5019 bytes docs/sqs-connector-0.2.3.tgz | Bin 4212 -> 4213 bytes yaml/alertmanager-dep.yml | 2 +- yaml/prometheus-dep.yml | 2 +- 15 files changed, 388 insertions(+), 362 deletions(-) create mode 100644 docs/openfaas-12.0.4.tgz diff --git a/chart/openfaas/Chart.yaml b/chart/openfaas/Chart.yaml index 32bd6b6eb..848c59d86 100644 --- a/chart/openfaas/Chart.yaml +++ b/chart/openfaas/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 type: application description: OpenFaaS - Serverless Functions Made Simple name: openfaas -version: 12.0.3 +version: 12.0.4 sources: - https://github.com/openfaas/faas - https://github.com/openfaas/faas-netes diff --git a/chart/openfaas/values.yaml b/chart/openfaas/values.yaml index ea5d9793b..8e64e0286 100644 --- a/chart/openfaas/values.yaml +++ b/chart/openfaas/values.yaml @@ -49,7 +49,7 @@ autoscaler: ## To use with port-forwarding, set publicURL to ## http://127.0.0.1 dashboard: - image: ghcr.io/openfaasltd/openfaas-dashboard:0.2.0 + image: ghcr.io/openfaasltd/openfaas-dashboard:0.2.1 publicURL: https://dashboard.example.com # Name of signing key secret for sessions. # Leave blank for development, see https://docs.openfaas.com/openfaas-pro/dashboard/ for production and staging. diff --git a/docs/cron-connector-0.6.4.tgz b/docs/cron-connector-0.6.4.tgz index 9668e9a64cbe4a7b4e94d5dfed264412a52eb57a..b357970030edc6f86c4c4792bef2ded10c83722a 100644 GIT binary patch delta 2601 zcmV+^3fA?57lap(Jb!y{8@IC0-~1GF3C^hr@}K6#YmFfsv7F@I0l;1WTIn zM_;cDhr{97>8bla91gqxhiAuUk4C4bqbDb$)3cvPkA|bu(SOP5BN%=~3|mW~4ONeZ zcb==u++U>7oP9v0nG_++M0lyX^vP~Km%%ouV4oPK( zA*9CSIvflZi$x%F6f;V75Xp?N$Wp4B6naHs=G=I9pcr0`JslXr?3Ax1OLaJDYqz|(S9qEHcHAlr!+Yd{Z^ue$U73q7} z8D+vyCQ!Mtm{G<iJw@uFphNOsQ40 z&iHw?2E*ViI3@SD{vG|FQ(mC{$_8MM{*R7F$6ftDIe$BT(Es}=ETajAkff0cm~7N= zbzg*bTaE}xsKEtY{{HT@*J-=WeO0aX;V;8qhJ;j~=Sqe!qg*2)xso9P*fJ$I@%pTz z;Fu6D6Kw|`!E2d7jME~447H{SY68BZn#A_HKm#U4;4*=kR2eltfiCh~Dx)EiLQ9Sy z6@1iE5PvAUgwQLSdW0OoD>0Xs2y;dqDXNzuN|h9{(6ylf6mc$@FvK<6ArbYav*g%g zp-@`7_sbmZbU--=R(IE=)gFSuD>KMBWx^78&oYE5ngybOPX($a6N$rAO5PE)f&(3; z7#AEhQ8+Cak6#IcYEF3wCqqq$kTG5$_p*i0H-Cf}$x(R>A^h#{gwWZH31*hQc}g{l zo)sny!KeZWQCJ%~0EM3l)W-b=$S{*?8A9*u^f%UXRZ(7q&>IbhS8V| zK<7>QO%>SQJ?J;>wBQB;A8W8W3c&||@31}J&QU2ABV1djLqu?P;(oI1qL|It6@T>l z4KWn4`|S}vS4a&4t>>5(oG;;1K{=Z-jDhC4!yb_TM^D}LH+Bxohc$Q+Ei{6b8N&Y+ zQ&a*CYR~bEA&)gsh2EFJ*qSJlG7UdWmrfcl-dxze)<@GhMn4AR)eMxkN1llF^(YhC z3(nUu0}IAEOc4rgacZCre2I34aDQ#DRRObEEzhd4mTA>zYlnk`&UHiSJI6ry^ze0U z;jCrhsjL|82J1@gtpVnW2{VJ<_qzYR?scg7d2h4Rw*6k&fvu&rDpTI>?XtS%E%%D= z#px9J&LwvJdRrN4%iI4hBRX&m3UhAHzutfMpf~Q_iqmgxnjXqMl&$B#cYl{M6n75? z?>YaUoSyvLIsbn?e)8b|-%Dx7e`%iU!F)t6nTSJpQEvc}p`kG~)Lz}4xhn7cNAOm$ zgbB*wf01Wp8_ZoJ&GXQDF zXGl>ovVfldc^N92RZTcpz*=|R)m-DB3F`RmO! zd@7`IIEi&Te0V13ETTGu5dqLu+{XuN?2YSnlkNp<0-g?&Tn4OG*+poX#KSbW!BQ&Q z3J8TXek=I04D+{}+?tsM$&}4pEAJ3(0L|K$9qctn{y{Ul{DO%X zg@Mtq0l8m)yx7<5{0c`NVH=FEdDD|#2QPnL+9Y?)P(3v@)a%EmJ5p}FYBj{$PhE%8 z|JLsLzrA$se}Q#zSt6vuuQ$iO_n#;0`9CM8!-xCdeUu|Or^cWX?zP3QJSsOpZWc;yt7va)p00 zc7?Im-T(SA0DB&Q6mF!21UV|;OkhBQ7Z>9TBNdV(crLR{3i$B+0%E2#2@+-o?yrYW zg6Tih!2PW%(qv%&RG)e-1`VMpjV_Da#lAIp9Oy+(9tTr;Ngf9#%gN(^k|X#)6_bUA zS1(>_Vx97j7#R|<80oN&-*+c%{ zy_BOSyYIP@qIrQO!^O*3@KdI9_@m46q0S;x?ggoRX>Ke>7%a~45XXaj%J8jtc? z?u>}@tYP9dc*VgaAmr!>&K33*ekzz|2K_sFCoqu5s6S zk#%}ynK;1YzQ z@zNPBkP2d^-Om-9HbZI(h5AsLOk6hLWVcM(NPOsS0@v_9?ab|idM2d?bSeuT!xYQZ z7L4~Ixxmsc`V`+SNXmcNSBF|8oz3{=SPn(f1nnlPNPd6!+L=$Qrq9k_RdK*zj|4U$ zne=vLvi2q(NgWuNw1%$l6W7hf2EGJ|wd*^!iAT~2HBQ{nTcxWWfaIVZ+X_xLx^qy% z>uqFGXTxrWM~ delta 2584 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 KhmubKbN~R{e(#k4 delta 6004 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 diff --git a/docs/mqtt-connector-0.4.7.tgz b/docs/mqtt-connector-0.4.7.tgz index 2e64eb6c6d5e38e6457df7fd53654d3b1b2e13dd..25933c8737721ae1a000671000c59f19daa406bd 100644 GIT binary patch delta 2867 zcmV-33(WM>7Sk4xJ%4lCHZq^_EB2&zF3FXoWXnp1Go87do!(`7d0g$uO{de5A#x?5 zA^`>frRZYcZ@&RRiVwZ4CUvJb#s^yj_D$>(yV&%D)?Oqy$4CnqoX@D#{)(o_qc1ml zy4Ua$SXH#|9g)E^A`XQ%za@LB&+uRrLYojroy7k`vt=g5_&@=@=zd9{`M zgAAIn_b3$;JcLD`#Hb?4GHsvF-L`uWuc4I3c$AN+@v;{FqI>~8 zf8akO_xk=@{=c9}j_L~sfCK*DKN)QJ|Db>J;Q#kASbs{V7{YWGNuP0j88$&a2?zJtiWQ0S1vyPpLvOI)Nzt>C6a~BepG6&wRBb=NK9Y(i> zL%4|X5)-$z;L|P9B0*<66~a$H6FQkN&h*MI{@yO~e?409Ut^jjRHF*syuEsP>FbaB z^M839I{%%X4O;R4Y&h&a#Q*ykS2N1z%0?{4m8MBjMw{l&@Znv8R3S`6l8B{+FbFa) zPK0B$(*mZbVI^`fcGVdBg#0LSh$x38)zQpio|j}H5mS4bREWT|4ViN^__8|6g@k+s z^L&hvP8@>A;nOGZe?Tjf|AwZhG8!S=-hV=jSt3@g4;Xk8@(@V2jGg{JnqiWmRKCtW z_b7P4|4(|SZT}yh4TcZ?e;?!1r{F0pSQ>&t4HK52US;@gYRnSNFodVU?JY4-3C|@`jX>8tCV7&q;6qLmHenc>Goh8;C;vuA z-NI|b!{}kcSVYZ{_ zyM8xzVC~f!mnjl_^IGleE%u6oO6VAqy|389b#^LLx3~LURCM45OvYxui+`QJbf7cp z9OqNNcWinXzx~+x{ddQx6uI_SpIHn#@ckb?8w^|D|7ZQdL;d$&M!o(^vrGkxKAAHf zhj6jp03=0CW2&i1@ol&&Y6D$(E7_EBn!rCWNsBdD*hQLUp*f|OTWb49%ZJ-rS5y#b zCOC4vQC_vHCazg>^>BB4>wi@&Ka#mwDu-eO-Ea1AiZKp{<)qkvA-4?Z(HC1q-K_|$S491MN$`_p) z6qQp|$7-9(7P*_eJm`3C{@YKVnt->roffTz>RTAN;{67FJ6$7hpO2?r7UDM;LUMWw_pSHSAS?)-7akMwTqrBx7C%c zaPGhm`J(AprB~Fh9vbTa_JXnD8#UN^eBDOYWQI!QvcZ zQ`}LF^eQ{7LG40o7u`EV%BBDn#CG-_EpzN_MRj3wl!~0|QAT%C2o_WZ4p?}-yMGj|h}UmQ?@oVr{@2R?eRK3? zQ!XTaxg7J*{omP1JO3Y?4hIkU|9y-uyrWv9bUj_}&BJnr9Bc?;d9+NI`oVp%~$C<A0!QVWTs3+EzD1&8d-tKpQ(rAJ^3)&GIeF^qG$T*{OSRepZFr{%Gg#XcdV+l5!I&A|0Vk?ZU0F;z1% zWg4QyIR6%UwtdnTkpe=Z7;4XjlwG(g%Mg^?d%k295@Nn)Re{3e>-rRU-n!URO}3l? zZhzKY2bLgs6Yz}0U!)V$HyP^-GzYV5jswB627S7qX4>Y9kgCu~}@p%GF(x^A-T zT65>MPsk0tqmrhmQ9^6nz(v&v++I9#+`voM=yx}0as%Fu0lSxu9>>wLVqM#k#`QK0 zUw~qKnqbk{I1v(5K3-e!o3ghCit3Eu5r0}Jq-OhAq>|Qkqjho%yQZ&XzWrtDNqHE|1J{Br|Z_vC;Pbl!_>DpfRw!9kUY>E0Prd0x4@%)>aYpG)uEs9fsoQ@NW z?dFsDaSYelb_?qUepu(>WzVhsdMvqqT8Qew{179<#*y%w9lP7&)gS15`Y;~G!}#sS R{{jF2|Nnt~)an2@003dEmE8aU delta 2867 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 diff --git a/docs/nats-connector-0.3.2.tgz b/docs/nats-connector-0.3.2.tgz index e00fedbf0743407bd3b0b95095a34f55543a330d..fd58ab3bfcce973f45c83984b3e49533e967929f 100644 GIT binary patch delta 2923 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 delta 2923 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 diff --git a/docs/openfaas-12.0.4.tgz b/docs/openfaas-12.0.4.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7b7f57a361386e4e266f90179371bd3111fc19f2 GIT binary patch literal 33836 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 XeV#u5w9o$w00960f#t{70Ad3GNT&h@ literal 0 HcmV?d00001 diff --git a/docs/postgres-connector-0.1.0.tgz b/docs/postgres-connector-0.1.0.tgz index 65feffd616329bec1545128567fbacd2af50b3a4..9703221fb326928ad259f044b9892c416d072a03 100644 GIT binary patch delta 4117 zcmV+w5bE!)AgLgbJAXUCs>?pU(rCp_ovrgGi=?MHXNASi^ehdvHC) zQj;}QQUFW?6}9SLDhU&$CRa%I$R1qgDw%sBPKK|vwvUx&a;>rtbfPI(O{1dE)zW>0DEvD z6Nqt~Cy=7nG(k9*jy%2}HNu>kDQGU|j_^FS{FMs06bYzYI4P)*5~>#>Iu|opu8wC4 z*@J&jgLAroAKzVA8KF^xTEpq(xg*39%&KmhBp&+5cNgASTHoPcRqk~3{qXyt#ry-+ zECQOFsY7EYTfmaB{d8kLjlihf5%RNCw|~F{{Cs-hB*Q5R(%5px%Z%~fUX!`yh3}`Z za%TVvKjf&5dj?1`m1;49-pTQ6)^o3-EFVGdU^q;BP9Qi-nJGl5(c$pfiSM!3=|hB! z@d~+DM)-73h>;wX=gtUz{f!VhnJ~f3!hQa;jpx5WTjBo=rWvOO_2A9h>$9uCe19~b zH^#R8|Ix{D$N!%^J3f5$|6ikBPpP=og(cF4a$cIwWyuKOlB4zc6UnV^gB=ugO_*=V$l`hPP;o}to#$v!6(*tY*4 z9(DEq`SIcNNB#dA?bD~hQ<$-I1R9OqN}^e0_#(AziKaM$r-S=@Vxh>{$IR`Xrhb!d zcMkU1?ZpF9!1W=<2@~kHb%oim&^_qa-)YVb1pb`K>MaC6`Iyr}zMY{`EPqD0vzrhR z!O4+(Wa(8tnXr%0>(|Io#O~Qs__7Qp$}uK6=L`6dQ_dy~W1v~)Xb;HG=&?I^W5=-b zuqG^`xkk`3Mfk6LjLHS+e#R4qJk~%J`n`=0Va$|i_;$Q-+<5io%EDSBsxyqf3&{Bd zl($hHNfAfrB8YMCnDJ537=IzxmQL+*9M&xFFcl(F|TQDy?ro&nPS3Bp!YZ3|C{c0u=#NxB5CWMTN2n*`m=4*WBcRV zM*r`(Q7H-&EI#8faI^nE7(P21w*CL1ef#MDzea1G|I;kfgV_POWg;HIt7`E{iiXD2 zP#elSb5)!H&@3C-O?W9W%T7Ol`+I*jAk$0=6lUe2xr4B#%b{ypwEO#h{bs#gD@K{3 zV#b~LHA90dR5RuR1Ahlpc;nGh_)r4SEDLTc*B>xB@TdK|&2+i93#>%+pb@L2!1CDsQp|E~SDd8287Ejl7*APXj$2eEwo?WO=>m32JB;{Vns@2ZeX= zA(zI{Y4>IRJgYqBwOxvxO8L^G)#YK7Kk~A%>qSHUAEW`>bbo+Ag{3@UtF_LJC4@A^ zSy=H3AX73$GsWDkl8zM3a0ESf0NE>`c#Gr*61|J+mK?QhCV8G>W3+y;l-(2k3c#}2 zosl=*l<(eb>e|`t*2kVr>dWEn`v(l^ko6m#%AHY#x-)wB#D5hHt8)Om6V;H@?r<%# zP{a+Pt23NkdVkuh=v$F7X$W3MU$m5T19B9z zE~owa6$kz|x#F$w04|5yTE#lI(6oiCuomf&Z3sQsHh*L;Sh-QCGuhVp)kq!qy8`-Q zxNpWXUOa4oA7s4Pbr6^Pc+eQG$1X#-^wCsFA#;6G=YzJ6(@8t68)hdn*`%k2SWQCD zs2sbB?YnyIx=Cd&%uPnuVrZ)3L)5FBL?;=zZYCwzO_5XF%F-_04J_SGWGBJ6j>rP+ zrp#k*C4aJu_hCdfjK4u)ZpwmvW+k;DL3@YI=@P5^OC0SKRmC@*yCa43l2iH@k>!L0_Mb07N za_rAWm`L_PA*Y7T5bXA^@t%s9?18|W3Ph$_FVwhT!9p>rzHt8RKS_Q zfCR6uZmx_}NcP~ROj9Y~r}e?9pm82_&txWDC#X)>^X%Aa~B1~sBF zjc)VIg9|MAiD$Nc|SX?yJw->MM!WqmHWrhh;< zqN2)IThrmIcGg}IsA^-2+WUZzD@34N%MtuqUNu#*NVo15R5iW*Ov$?9 z#}6|2j*z`QxK!A;5j@k(peCfhqI}tIXWG@t&GP4q8tA1IhDHW*XE7&C#9$-E)EdrT zTa;yrMNA|$@!fk7CB%1@q;p?>Rez0H5|rlJz?9A`t#hevtx2xvDr&Y|iB;c{HepGw zuz59O1DaK!`%&i&eQySVVbwbZ%E_-xYhADY{c&HenHHG=_;p!xR<%;fq^O z+Et7dJ6XpLpNzM(xz)F`@SnZUaquniFN@Hv6(122hT)j%X`}M2C|57AB!4JSu?YUh z?f&|rifD>A-2kTq?A!UfGs$wq7vKEz?d!8aHTl8C`OC96S7(-l##HDs{f#wTDocOB z6uQK(3+h z1675HUH{YA7hYA;>T5?7X3~-4GxZK6Tz2W96K-Fq1wUJDh-8}DNTpHp=_)V1BGVM> zj2ci~sE{@wCk^`)hM|)z8!r^3#BnV~OP4{4dr(X^Za)oL{XJXCSAThyC>pP-M6Cu{ zRpMDHSuwZjcRizyn)WBql{UW`|KTpj(6O9hney=d!FsKNSg(ck6pVx{=iKs=iUkOq zmkDR<@*3+)A;uYUnWZ*{Eb_e_rf%Rs;B%~BiUGl3H47T5>JRG3X&f{AMEUB4@fMy5 z2pgIm287(fB~>&8dpH1DldJw-+{luBO!E&snFjmX#woO+0YuZa6Nz}wriI|xO1A;EGyMZ zx2_r!Y23W}jCNPs%9c9_Tf{azLs<6f65BkT_AbGDS!-aceSgkA%n@Q~y+y+UM^h>i zKRu?sGhE5%I|!XuTFY8TY~gyAfbQVbTQJa=QRPVE%p3IbEZaz+S;iOTWj3D)0Ty5Y z;q~bc7iVuyU!RRmUtXWTeG~2j_3Pl{fDwe=$A$Y4`YU9i6|m4-$#5UioEw&L1ZFVR zW%$q~O6SqkdVieo`k-{0*N4TOwEgR&;$7(Y(d(_3vw|O;e2(k)nto(yp0@6pm2lM_ z6(Y*{zTY*E?S|wZvbeEksf-J2SP0=(#khm;Fx^UQC$Hm(JzsOVt)kN|mdscLDb2nN zy>}2E4VOizLu@Dc=!pG$_llfU{t{ia^WO(KnQ%#6$bU%nqD*_%^J(0N^AQMDY5`I} zreuU#mzJPdue-`xZ6dZ#euvd0tq%YA?xMOqcY1kVCe(K@bib?JLAdE!Us&jHrzYE4 z$EtX`s=jxY!bjib4C)&-b?qL=@q3KS@0igYgqtL`Hsxhvu(FQUjZpaK_4TC-mMs-7 zaTw>SC4aj0QhzqXce4g%aaY*r_a;xrsH`2VO22mCr?cg?5icTMZ^NwzJ=jRgmhUC8 zMY64SNARvnz?GLVosRg6mQ}D$zvN!ZQR2r6+IK#~2C;RfvR1H5#e^yD4Z9m#e|+1` z8Z>gCEsxG+0%a<-FrEQi`NM9Ei$HY*;d^cEoqu(1#nt7_da{Ao&He8PxpHSJ3qTr8 zA*;5}d1VH}eqW=3TU@+w^!>VDJ^mH~RY~ro*2<)dD2kXMw3|I_Z_z8cFK=?R<{ zRVG@}jDPcG+Hg1=9v>aK|HI+1`+sddk)i=Y>9;-XKzeuAw`x%vHQjB1JKvL9+V!3g@uN0e3QNi0B#osBtgh?S1`$@w@ z$qX*M>|FlmIhn}}M=&!c*Q3E;u~x&s>d<2x^$A53p4a04S&E6{XaZ>{;aG2Plv-t{r?(m z53XhyG+9F>1;8{=QLFxik}yGP3Wa2k?7>B$k{Q(q6gW#z*e6p-d{cP_y2x{>%z%(R z_?IkT!8iwjn1YdzD5R!|#VS?`y?~)#zVCrmW&|@svImKEQSk2c)$DIG}t4A%c&j_ zfIT>uQ%G@KOd&(9=@c~q|6&9a$~8KuOEhjWTu$wpWYp|Kx%N)5wB!g%U`L0OECpi2qy&PIj&^tbQ&3f)tk{2WB9SnzA&j|!)88f8_H98zVJN7;H zI(>+cDPAJ?$_StC2r-hQ^4uB0ufGvOCle-^S-Q`Ew(A3Og&83C4MpWmR zd>@gs2`F!)Jd!ew&}9(g-hVOUqoOfFp)H--?R;&V5T3?D0=2AGWi z_hLHNHKuRf1V%6Jzpf2BD_(dkEn{BO+Ist70&~TLnLzJvy8k!b>tOTaK19+sJ+~yV zv9wlY$`c;DtZsQrS@BSuj*)L&Vh7jTIH4xL{d0Mu2e)8DS?d#f|9`&+z3bk?bn4Hx zO^@x5Z(IGp-$rF9Otk!r!@%wS|6us+>9Fnp4~N6y^GE;xHCprhpXRw9%n!&76X^(E zRf|tDG&H4#+ECt^tMUwh=K08O!h^)DI{gUl?)=$+%yKDEn6-!I4#Ju)hpuVS?(X{a zo6UBu9A$=z8F%8>41WzSQO%hP3>;ADjYlitLja(89^F)~KVov=Py6pT)79QCuoB6G zMy!$otFzzOXE%>m`{Y!azMPDzyvYW*j0!r%v_D>Mc%1b}4r%;iX5b!(o&^^0Kk(d4EIxAEW`hbbvsGC7iI; zTIa?RLYnd{tb7HKE1990Vc}LuCyM4cf}T5o?3GZwMe+lQzK`k#j@mYtyvVRITEAS% z?umW{VA<@>$Qy6MyEogqb~d~9v1gO|FuZ;LfFT{Sexp;^8C9q|qjyjI*U_*(2XKF) z8gkklu0EjIq1>D1beu?JRHSW6`_LN{S`Efb3@XgME=X9z zzKu0s4CYh~{1o+|{1X1RyFP&3VWb*n&0uTSV*T4yLRx~*q7Oe*BrYiTiGX#qEhvA{ zQqnERQOvuX_Ul(3_+J-_x4r|o9BykB>)b-q7Oulurhi9vA@pFokhx&xTA|KmTj$p! zb>Qzx=!fCH9?Nw3umOIQ>GHmVxZKBs#&A9EGlWYY&6E_f(ARZ7Xy-Vcw9}?x?qw#M z^wbdRN$43>U{|qySFc^ynJk34&gn)BO;vn|dWA`Jl7X9M62Pv@oZ?QFcJXdu>24xB z3C2xCmVaQ^A&Q28Fpc%Y3(9mcUobe4|!&Cf`hHZ&IxqWVcQ=&~2aZ zcCtdUd;>}4=bhvPG!G&r4AOI{^WFy4XpF+;R7XDXes{NC;d)$7uTdm2W#Zl_ed@h~ zvz6;@Po);T5(I9+$bZqy%AQ~%MPcCJu+0U(5r2GbErDL|zP9WLJwY^mEBLZZMz=pY z3v)rutYb{pZ5|$M0N0ql-$hK9h!t&o@TTT|`^ewVy`B4?#xzLy?TRI;quxdizox&H z*(Wyk@ZuA}EtK-}LxApZYGs5_0#IYGiUK|pbEDdzM&2wzxIg|s`&{R~ZO!>#WP^A% z6@OCUmlXEEbwu{yYQ}V3 z)TL+0IZU}6`?C=yru(3fQ^V#6cKg?OPen@hK;YCn@$Yhl6ZR2PuY&*Y`v|PL0x4Wi zOA_R$fHQ#+iC$e^UmB^9?7>T!Wm3S;FMlr~WlEE1%FMw1_2iRi{NHNe{)QK`>A?O8 zKlNM;YD8n2+!VRXeQNR~(uaw^Z#F^?X^pMtA9e^ zm-V^ih63S)iYi}iO^2`A*?2{us*Npc?;}Dk5rJ|oNAPR7YOub${_VR^S)9s5x9%2H zHNE{@$-3gl4>I_kki9*)P}sK-Jk!jeCZxZneA#Yi+SSR;^5^p!=%o~fCI$*;F(*u< zU?auM8qQx^l;w&gOiXLyyZ0gj#DDjeq%&WBRgD=4$_i~@M(38+g;Y1zBv*8mHCwL4 zs&7e~uxX*Nc{O7TnsuvFVRV`6Bw+N#s$5Q4LU}kkw=1>pioMJX-6=4eumm(3!^Bj> z3>E(2i(60HRg9H8S;r2ajJLG8)wi?opS{m<@GbEVMd;Rwj|hq5cue)IQGa<>maCUo zrYKOc1pdqI{`#VdXv#O;04D(U?fl)DWEku~*TZ>+_LFw#R;%!P8-D_v9mVyqn6YFAhK@P<8geg!)&h(XgfwM+(O4Gd{zdma z(kQkLoC$WIst~d3f0Fvbt4dmZ?TEr$I&yrb-hsrcE zmX}m4LEs`JoUO}itS^NW=g4KA*%-3S_jZ`Ng#(e#v3@BAM1%D#XsD_`s3Rw7%Ip*6 z>lembcqSljXm%VCa(@dKRM8BrK2_}&Ue#9);VU&es4rIA1VC<~ztUjc%Rjp99MlmT zFDQ?@le{$6MmRfCU+ZdI0g)=IM4zgN-%xCdurYs})!0G8OUU5??_ zXCYaOwr>sbN1g%fYVKx0moBaJg}(8F1_kwEjDFT-Uv zp9ujLVFdBj$&cr!Z%$sHj!s@)oxOb%?*sMg;NyT1#NNln`w;spWU&>n*jveXAF_fQ zmU9GVFw-G?=zkKWi)3a!PJDF`oaWVGc_(fE>S_5dcKqn|Hp^Mbk4`?v^?OY}vaHBj z_sjxZwMT`7a=!0(&11VE`G+iTtXV44(i)aRxKlB1AwJA@65Gk^IAYH>TyCrAw2LKk zmOw`HFGKGw#7~E-BGe(alYDf<{=IuePAY$iuG;zUgMXY%xTG#*qlv~GmLKd-JX zT(E4ZaDR!zv`{V4t(W?<8Gb)&5Q@9vM!z>jHb!ObU{(5c4}LmZUK{Z;;`KJ%deDQd zwCwmEh%J+CwL5}$RRS(t#&kO3FIrZ?I{lJ+DMyJPD{9~Qj2pz(naWzhE))}{yf^G_ zZ2j@=e%7Fo18sS9E~gMusipCZ;L;ySPHL@8x`?8T31Yk1!}b=vlKXIz zqa{y1czK7JoNvA%NXQB2b-`fmm_7*q_`pZSpfI$#K#i%}M9_IBuJ19-i23r<2pM zAaW(*m;_h=l%h7dpZyMABuGhqBtGfwo$wDoNG!0}7ZwZbR)WW~nid&~;c-rcO4g(- zKD*OrG#ZT_9UhwBqtU4Ud-UjF^x63EaQyJW`0&wJMvLnR7UpyK!qa7YmuVq$4}T!wmU=pBW9>j zMoUlqQF53ZL?4^~q5dyPQKP(j18|N0A09s3(Emq|4u3!C|HpXt;1^!QiWUVh#0(UN zR3K3Z1PYoWlW4>~gMpXc*u5V>3=$Dkju7oZs#gzqb#nCN`3cOqfD9F(1!h2*RHC-p zmPFB>Ra2nSG}GXL6dH?C3I0#}?<4}-d;*I+6$#~y78NQR27r@M@*w#tiU9WD43(bA z$P7@kf`67&VYUxkfaE0t<1GFi1qUPYrWJvlhzv|q(}%{(<7DU~P}PC~f$z`HPvP+3 z?;sUXwS<&sxUbtY1C$mNnF7;ESxcn>#oBxl_*;!qCGd0(RDB^K$D*3og+_MGYtu<< za8Cudz5G^Vjq!?$OB5jMs^UUP+bv}am|HTt&VOa1flBh`DVrB`k*f)eA^?eLEvQ-_ zYm56vP2i7r5rDwPVgW$Yh5Zkp#FC5k1O|@|pVNVRnO5}#2IJAFv~Tt-(HziT2zK!B zk%o)*EF~|gN;Y`!zd%N?3LTI=O_ebN#qfo7%m@mv4d4k(;RAv zJA2e5T4}K}@M~TRU_3(!Iaz8N%NnIdihpS-p{$vbnT&=pa6ig+vOwohaVhDnzS*NfbM z*P6$3kQG(Jr+WI0O4IZ3u5bcBGBY=ZnSZq^Emg;((Wrgr$lAON>1ug(3lnwlUC%-tjBaA0 z4mFszP+AQL$eakRV*)c|ijqQto}ZEKljB$6he@;t=ehY*5~W33b5%=hrdJZmXspQr zM?ar6eUwBc#u{DLGfY+C7h8#`Km`kAC};{X1Ha0_zaotGy@qb+KGB$m0 z`TqFx?_WMY8TQ^L>WzxXN*=eb&dlHw7#K^PQAuV6eqWMQ KyDkK1*}HVz&F56ves=8a8TRjdY*ZMRCdtnyx4CbpC>? zQ-KnhilTX46xvaFxkMpohJOUlqWnluZ ze~ltCpHoKF+J64C{j~qo6Z-!O%gU^_!xt~lPtLTY+{qZ%?*AY3{r`vKgHQhdM|sY3 z!Y-{dW>(vx(7r;?Cr{wiI$v{M6nteqhfY1r(7fibK&96!Z3TtWE`LtcI&&xl7j~$U zN~y=OW={^6yr@fU;iJzR%c#4;B{C(oIsD@fNM2cYE_p#plod%4-o1l(1^+TuJ&q+8 zDxR$$CnYM95k(SXT`6bhv_z>$Sw+!L6zv2GzUU69UtBp7W;hqEHw6p#H;LiNA z{n6~rcKyH5`w|o~QGeAPgaWS7|AW!Nqn`dh8jT-)(*KX~{PD-|J}hZDF)OfkCA81- zSnpd&n&SlS58u6ubgSs(O{JH6tvh<5)vl>=V@=dJa_wTsP zyg1WsjcKbey_ZB!=grR5bmBH|(uGURJF0AeVTRV*GFwQEyu)@UX}!`?rhb!&}hqu3l;e|9=33i^1*m z>Cd)GpPrBPY+wJab5bHx$@;?&1Fl~G#}5t;ANJS(!++5y|No;r;rSn_Dmh$^qf5%N z2|Q_JAoBk7q`$^AQQao$_3m8+Kp5l7?WK)x-h?a@QdLBhTqHi`l*~|(0?kD#3_+~X}gs^DrKft5|!r90)JV*g|uHG?;h3-(x|r^p|8F+Hp@#? zIo5_VG8Lr42@I5|aj>IN#WgzyUyr^X`zA$aDz}=rQrzn(c zK7tEEOoBK5-3tTetx>!c-gjwkx>$hzPpyW>%J^y&w7r^|OWTL08~V>~BD=6Ka8ZqOB$m0CZc!kw0G0o1I!F=TJ` z+!loo<=qcNRx*s>-$J?qD|6joZgmZ8M|&xzClx*2(~moP3dU=X@ZFJbFxEyWKY;6f z3&Dt3$Z)PP3_MrOA;{z5l8B*?DY`HI_kW-V7^^~RW$OYN^&476Pg0?_L0#hd3ZP3| zZyk#49E@}aD(Dg!N_i^y48!T>N>$(Wxm^*JPhglMDOCP@_meTdUyr^Hm4h;>1>gx5 zWPOGyXPKP9LC~N=L3!4E8i&A&mdIbT=!Ioa^anMC!&V#mr2jbH?U-C6H5m?@ z8BN9q4-U6=HE<_n7kNq2!8P*=Pvru~VoR?jd2>PC)sJ1ha*-@090UX}KtTl!$d}$8OL;s*L zcBk8PrV?E7lot~?KR*2{=;@r$q850b3zRu8vJg@r$>^=|)==xa$NJ%wNRI=gJ9hx= z6UH(FDQ?=rTTuKLQWo$Q7-d>UV0_SD^Hx;l+q&u9i3q{AUY7`Py4k=znSZoi>vLW+ zwZ(Pa?Eq@dyky0?xy<38Qg?M~*f$vFyu=}?s$r7x^b*BzaC2wxW+P~QZSJ>v#oZib z)4RKQ_q~;Uv-7K5xuCb9Dy!jE4EzP5Znr!34L3o2bG`r1IfJ(+WUsHmZu#sle^>fs zG08IV`1)n=YA4LP47YT`9DmSzJ7G7AZ*}_RDRoyfW5(l3@D!ztC1Kf&zZpbZRDIJ~ z?%j@jPgi-%f_>derB>>&C7;b;5#kF){SyMH+RxxxLfuQu*~ zJp7dZ@sXZ5j-y@g0clvB)udHl!>|TPJ`3~nPXAFqTn-oP(|5d zUuz#RSsE2ldGMaFEZPHx3!B~YWhHP<-(Y4vi2rvl0qxKLX9iNE1QiM>D8nR5o}68r zDK0SDgJWKnoWW1WXOK}LqhvwV(EPOMN6GAWF*HB@i+nNEKY#qca><5mM>CRM)|I*Y zCZqd_TvgHiWJWHd`-v*6=>C64d+-wxl-ClTJ~@$5QVITVOjVT749U>86a3#%vXm*$ zaQGK;SVH}`xqC^O-SHS#>;J)c^i}`<$H7;R4nFDs$9VR->4x9>(*w8?mO>VM&!J>Dr{HgCvYeqEA+hB<;w zp9Nn~W)qQS>n1C3Y8a3fv<)$uhEtO)J6pSSAfFU)iR(1iB%}xGh=?1?s)EMUpw zoy-bz)bz+v^o_}Y)H5>arp=^Ij$eU9oWSeT?tg5LO7c5r`une6?rFH#ev1{4iTM^| zD((do{{H#VF-W>#ZSsgs@s^rRYK1NZJ0!N2L#H=X?k{5VS}TY%_yWFwcn;%xQM3nVS~>`%yjmM9v^#Eai7?GM ze1Goxhi`mr-Q?aGS~W9rlQ2GzOA1vc=f&Nw?@o4dQzmzV`G&_Khr6F22k33G^*e7{ z%JXMukfKm@Zn6MvDvu%a4^(-5@6g^R{StwVMMsv3b)}$0DUBS2Z1agQ%?8kP>PHA9 z+)2Ku8N^GNR;z3}dB)!Bqx*Kn> zQAusLYKdYJ$vWd;PnY9Y@cEBtC$A>vC-B;)2)_+dkdsmHTeG6%mLJ%0uk z$F8o`)k2W0TaTwP8R1KBXn#Bk{{L3Fd!{O$!=}L7x%?c=#gwzrI~}tIH_B|3SW?Bs z8o1l~6+9({Ss!bqefw2T3#p(aTGTZ?*uoYLvEx$d_b`T3)&OYV+G@9Uw0T()XS%dM zxDAgvw?&DrCtG5#qkkaP9JRLfHrybj-g}?&Y>N-!GVQcC65i{K?tgbsjt!LGLYr=y zAYfZA?S5Oa#{xJHrf~)@sfwagA|)U-_S9ra+JtLQWJ|%O)=%@6f)IpS@^Og@9T}& zjb`E#p4NJ?F!u2F!G9Rz{G1D3&kB?|=Zdn0ezylFHk&`I?LM~kprh#N+|~d<^f~`z z#%mQea^MMwo#oELP_u&1e1Snt zilOfyDYJXq<`+~yF?)VHMeQZzWNB=!Ew;2krJ86*6A$P@>wo_AitK2x%GV~Ep&M!{ zDODsg-vUD5(}d6yHOKg7@0aZxIoIwW zuhZPR$+aybvwy-b^jap?Ch&qq<)Sp+k=_`1Zx40`6s$1}Rn>)2ynkTjt=a{zJvHBQ zXZR+^03xUi1h#rYVyXi*JA>&)q-!&@4PKxnN$aq0uQs&> zNiP*YAb(c6%aSrjLaksv9QPueoN8(%-*(H+}D3%eRbZz10Gz!l#< z=()CIgV)sOIZijH^*vufsTtPfLh^a*ocY~L&wncnYL)J!*L1uwTAyCiex}m21wZZ` z&^XJ#t!(M-_^5rCK%%b0E6B{4YVc>Yq*nhFSEK-96_T5(8fh&AGG*!4I#3;K9i86` zukK~lX$bz*P|26P*iqs0R-}3#yu33vZNSYI)0LRh8~lA+RVXwjkKWtLMT_;Vt~=!r~e?|Jko0&HhW1?ms}U-u2;W0B)S877OhMYG=;v z=Xg`U((NSO*2p_B)K|CJ#A_NB?b}pMgIAF1H0^=g>nF~~cI|vILM?XoWWvmRBuX=0C!C(q+qv)){RQm=<(j2O0)vKF;$~2BO zX)kg8*vQ=L{pQbKr$EHQ>_83aO}NB`KcC zncLYzTy|S~Zg96yujjtf-DLGtcFNRC*`%yg8^k71hiAaqRC#M4ChU?R=W$1zS3Ga* zkd+4{fVj)YrE{l_CIO{y^;DmnkSV)bMX41NK`FxW{Qi;M8L8Jm%eFpDWI|_qO>bLfPAg6KD=B zV|=#~5ve(~YDxXr3Oj>}vNvlc&4ONQ9c=pt695bOjm={k+TtG?E$1ADlE92dt`sZc z0Dnt7h3M(AxE*>14vI&Ohf$g)yW%6vj(AKM1B$l6W(>b4nfx#7IQIMt(olXy@L1oE zuS1~HV*CUAhSPOnmpx5TOaUri!n+th)Kt(9-gvfKuYi}gBlB$8G^IxVGVM|6;op>t zQB)8}ZZH0h%aDIy4uXd{Mw!`DrNGm5sCySgrv32K+{iz#`W>7`eN=4%&xtt|Kl=}EW@7q$*H;ZJD5Dak1*L_mJ{ zsEe}56S^0->h;0dJG9p~Mv*>MG!j7wmSrNNVb*F=1hY#Bcz_aH+&A`#M*^Xv7JgwL zsWnV1hk5#|ocw=c1*^yoMgD?lB=%q5FxB1e@Oqr$_oU5A4lt6Ljw`=G_Q5er8g!x4 zruVfXPA&5P^8L07$;gRTSNG^8h71coMpaFslusT|WX&ppxPn{qO$hnUX9Nn>4d4eQ z6U^%*aQe!KS|21h45}_lw6Yq#`^_45)@iUg7oI>12l71x0{X^&-+vuLVd1u1; zBLgj-iMHtG>xI9g5v$0ZXQcYqKcC={2%DKizCdKqqCd)ZLkc93%>AAfhtSO{1n3)j z0pMk>NmE*arZ3TEwwM_d#E zoHSq`@l>^8Vv@m)M2$lkrYCZnfJH(XCsBW1=wA;sJv}LQ8FQHP<=bdl4c*LS@`$Q@WzDXDp}Q&O62j-1)y)watO?RtZ> zk>P~*+a^2)N?jIoQ{YfTXca~!&#LBPQ77?rJ)$1Iclhp~l(5Y-XL~r(g{LNnfTP(d z!#*MD(9CTAA7%XVClk_v7ZT&MPKoZlyRc*wdLykko_l0eN9hx#F@e7CZ=eob8s{RB z(rl@C1WHHF`vdn4pFgj{B}1|T8Ru3lks&*XfJzanV-`5+(K~jl zHWC9vku5vdlxil zG`$(xmwtLCSAAZSE+{lH@ZjBF@|PqzvW|3~fcLvU4NDM&F2UC-URXLnn<$F)Wo8rI zy=lssKxrGFu~lZLG&Rd;AW7aK8|;re6JIP@;gLvrf_XFCjCM{;w3koM8=Sx3M5)ISNo>CDLe$R$ zu6Q_#(|#W^eGa?ZjBq`a3{GKsjwHsuzHv~{ZRm^w1?fhg^3x3mq%g@mN`2Y< zA&w;wkUO^HPqnY{&AZOjo%mj%%F1+soy8QRmc`lT`TH+SUBBHudcOS@l-*k$1m6MZ z*Tpr0#&4rcsw1izzJWU?2aD*!#c3ZE>8^$;&Cp(6UC1HyG_L}|wSXtxtdlVLzuzx? zt*jbCenHst1@J3YDe(g5w9j|NJRUZb=|FL;QeW=Ti1=0o35k z9U^dEBNfPIa^d@+jUzqt&KqLf zr%BdrR{TpX2mEIfbkqEERCKR!$R`5Y`R>CmSu_6!JNfo2a_cbzK zuL2*4CABRYU+bJaQ{7_rz|nW4OW#WhrQzXS)%^+n_q=^ZDoS2|xls2RgK{%#$_Fv` zxctZ3yr-Gj_x5Y+1O)F~i#E%hMXpHs!}3u@k6|oAt3s-qT^>Q8S7Chg0m!RNnd5D9 zuuXehli|4W(p$nwk8wK4wRdEprv%$Imdu6!Sp{A}A*^&V^}bbk9z-8aWC-#n;_vQ$ zI|%Gu2lKZDVop6~ow9)5reCOReZnXnzRAFxPmS&1J@Ho~kwc4~;m^Dcmz_u}wodHW zw7lzHVBcqtQnwq(<8ZNIvf4A*SWlm|JS4~5F8eyq@PS@4umxqWPr{8(Ed*W+h4pc1 z?zhdTKpF9bE0QdpYR)6x&OG`8=Et1|d$~0}Y_8o-N0x6}OXi)zlFp5`zTZ$z^yL|a z{Yart<1BOc%a1><2lPiIXPiteIzdTw#ObU+1Glaf;2HIs92KE>tpdzW7UH&onH6M1 z+=T)Gecq*u`b;C=bEmziqAyfYMBZNc$VP?O$8woY3J<$%Bz#^lBF>2p*eBZWyJVM?wYO0qBb3Nh zFDM_^yX(GE)0D}wIPz{Cf(bUQmPOFdp6|TG170HhMq}8EW`D` zJAXpCX4(53`{t|CBp~$LRsi|O<+Vtz&y-{vprsRZ+_WCMeZCC2>SfX=hHI>aM|)`I z?euzcvD6WQ6O&<4`2>(RiMkyb`Z{NNYF!z5sLzXw>Ggy~*z4n6&*NkplO@1<%lGxh zGvo7UH<#^*wJ<)%Ie~4c&7swJ97QZ`nWKd*d8u&)SX!0N*YR#AGNmbP1f}F z%Kea-J=sus_1e0_OLcq6?OJAsF5@fcvK#SENcOJBxdxm#2^O~;t^KLZGaQ|V?lQ11V!7`ZTBqd)JOvJ& z>N_T_HX8rLqNoq5WA9|887#CAxnUk|5r{fEe(U*uZP)|W{+g*AW#$$ zHN5e!SE2v-U#buPz<;R4c*88kB@|5~T_)0qX(Xx~`oraZ%-fRz1GxL&=J{h{MA}_8 zPk&@O>B}5GUzcBM(IYDRAB#btv38r-v44TXw5zjK1%Vm4&6y0 zBRU+Z9C!5gPrC5e2WJ3~=l`Xdrtn;_&_1-5h~z*ILfg*^bihVG-!Gt;K_cp}1rOwH zwAVhY`k+yN@<56Su=SkSU{BwW6k+Ml$5>5C|C(f#Eb5u6|hmYLMOaYt^ z_U~)>4`3t7#+=xcN{ww#Y_L%43k__@nAlzM$yZ}4ikA(Z(l>Fm;(o8Q`9@p80R|De zXnYysUf9{$2A036EJ#&W8hBy9#8S)pPRyXiL_0fh5<_OB>#9(*{{>77L-Iz5aY*D_ z1ZeC_e|Qnnx-*nu2m~(Z8ecSV!Jl$B^||7uxOs?`C_BAoM^>MF>+oq%wk+B}2J*vD zlALv!!9yc>pIPYZ3?KgOE4Ke=y)LlBx#s9$>xc$u%yDdlJE7=keLq|de4@bZUoTQfOBX8=TA z^9%C}2_ej?htG_pY_%sa&0(x)HB6>_+#Oq(n=bCB!|xMIe>3YU__g`aK;6Ov%_yR{ zyD|o{!Nnk|$65ie>Vd043)!Z%P`Rol$=L(ePEz z8Ok5pA3Byb&z~#|#fV51?i*Q4;kSrY0!1UzxH6NQm4%mGV#^&Mx_9dCc|*Yh89M$c zCgwQ>3sdRJV{4@E+q`^_`!SVw*4Ey}xgqOr_vZ4nc1zla5wh5!S4Nf?WJx|he8zi* z=kYWCW~p%RtT1+X4Epft(1k2c zQR_r3+s(>QR<;0z5ag4h_e3Q&0I~};H!w?(vIL|}pf{WHhMgE}abcLZANl&u>4Dkx z_3so${Lu7ci+ez5~ zgU<>%!Qq96G#mf^+)i__GzgIi{Fv>un;6z3isp6Oa)zbtSHUxJi@=B2M#-1acm_ob zNiN;mPBs7X4Q`E_bm~FaYyObObW4D$Qil9bAFV`Sm^_BI3TK+qy@@R;n#HUbE)2pJ z#+4qEMd$q{ya9Su*(kFjv(&u%t>wkJiFP*nZ!7LZtkae=rH*wpUN2${jNPnT zF_8jFiV*`v`Rc%4p6}G$^}zWiWbK?F2Xv8KEvax0Ko8+tTGi0ppq4xpJo(`-XULTK z-(x-!H$ss;7smH2iEdQQ{w9See79p8VRzqH23BQ<-@Ifh&`F>-C>!QqMX`9&ACT^N z2Eqf4s){&P-ZJ4tE>AOxi!iZg+!6u%Q%#U+Jzj|nyFN=d=M0nj=Rv9A7zWaradsp0 znMq{s2zvLwvRsuv9$+tXXF6_{_vaT?z$G+jHM|lN-;0wBRaJFmC*ia)IIM~c(i$BU ztdZ@~_8^Lwx9>6>>5!8g?r-(PB%ThmXS0O4!M^5Ke9Dj1fvMkeYs{0iWfP_;1RoS7T#>N{>gBNRS(nunKxB);&ZZIY%@_R>xm< zD(s)&#}OwQoRGV*P7c9)$)`TubC@cw@0s=MMG5QQe>Z{B$0lKjFO^O*!*lYLaEa)b zt;v;r9DD1SfpaHT_YEw09%$IfIuU%HB~ClJBipw~P~8P4XpKi)9c-Ca@OP_F8K8Lf za`Xcb69}Z%hkp&DTpJlO$5onKTBo4#Cggi6yG>?}EDn*?G|S$@xEtzsT3mf-G>j-4a3Ed=w_qR_`Isg0&+*?Gd*@ zI{&p|i&zo~c^DUscS0l@8WVf_u;R4e{7BHWsVnMxK}N=yUxoywn17^uItE1yw%IBb z)6`m=AIohh%C3B<2rXh`70{(H3lx~NecAdplCs`@lzD}ZWezlBg$`i%77-jncH_b2 z@4a#Bb^~So4P;ViKba)mLy{!)@)0X=<(>JB_MY-wCcW!FF#CzAo6vLQJ746Vg*WJ1 z5A)^ub}giGiw=HC5iGn^-D0}INnaH%H4AX4+A=&G<^{yoFy>ztHjiMg)v^j8>O=ov ze6^WT9YHB)+AB>JOm93i*0{G@FLl#x1f(VW^0zrhY*;AOnr%U1xLp!P$y%d(JnkWB zdY<#I4ezmMEiE(r@9&s+ zzYaghyT@57I*+Eez4K|#bV-*lq^z0Y;?q5+v({;qno z6@bx}GvgdH!<4!-M9O@C)Hx_(@@kWnt;po5VN9ucmiYoKF`V>>tvz{{Dn7A&KHh?v zlD_LrX?eJKVrkK5#e5{vOCOCoX?y?8)|>?9zZ8b^dIF#p>gSRq>w%XK8x%IxoOulA|&?1oshZts}o9KK*!;EMUPNqHJG$qJ;ECXIIU8(e>^XlwAF)`ZL##2G! zKl2dC7JsQ-SPzuUvb@h+}t4gk%zTM z53X|lR#FS_odbRi<==h0;1p^|&N0DHeZJk^UHA(?pHh#(vkUv~GxD?x<=n%kZ)@XI zr8`ekyP1A3>F^GbBj`#fjv>Jz7x=}q3ef_|;MOhJzF8On`}b$UAIDOhaMBLvp;98k zi_60H=bf(O>M@J>#JB+dhlobOE!aE3gcG`sZSm8to%_Y>N1XfGYd;J)j7%Hw`3RlR zcrK%M=>DhvdTYi(_lLiEhtu;{r5fXh7x+X(OR0@*Bp)M$d)IDWxxJpvQ*}DH{Cn4uxk*_Of7W#rn=HKjM z#ti#Z+gRlJ3PO8;2d|loG`R=oCFAN)fNe8ZBzY$RXNa|>JNIEEQXuL>b%!=GRuA7o zX!Lx?kn3Dsv1B1RKC*76Q`g`v7wv0Hrw_tR9ELyU1KZ&sG0Z0-PyC;0XC#M_D7=Us zP4{Y5lyX=$^9@8c2i65Vj1{hAzr^&0s2w7dOToySs$EbAQsD0L=cWZO5z|zGH4_Sg zhUbLaLgt!)jnc}y*SG>-+29&mHE~snpKDSk^+ohJ!SJWFCJ|wnwQ1Qx<@QqW? zAZ0f6P8;?yVZaHK27@7?f&knUVbg`(Q1ce(NMnPhu$I1}kJ!exfO@*cwW(;`v~+V; z9)PBC?1h(faagxOd6Lxn!;{W50D%Zvym0Lxs_c-?$6Rjahb!jYV3B@yY*7!?p3#=U zPlU}NGgM9cb922PDGyzwJmdLw=-(-}bf&2b=T?L4Ee0M31rCZEkA#+ewg#?Ko$~-d|%Gy})$NuBETtQ(Z~VpeuSjzJ7LQ=z@I@zQmfX^Cg5~0?EX@ zrK+SZ!Rl+VQEv%=GMVQip6)ou$h;5qh`z0bBUN?%prUyrgF;x(cFrx7;Z22Vjwvu| z3MJOfbe3NE{wXT5OQ*4O$=9)Js$&9>ukkNXScuuuseK4RK_BHiaD(s`c7kc$-PB{T zL_hr8O9$?x@W_yPr`Cy6y)2hMF_qXT_ zOQIM!V-?H-fIK;eVA#3_2Ffv%Pz9}9*ob|-1reN0=S*{9@*Zp)1^U=%j1E)rQLjz{ zxc;u>Yeo5?`q)bnjE&&-Sp3EGISbw?Gy_#lRic`E>OPlOc$L{sd$|(Je!QBol~e`K zwL-R3%@b);8BhqQ_c~3<=JnU3DNr$3<_xr-+ibqzthZ9fHk+mA$W*l#s9owNMdGRi z_^a=Y<{2YmCl~1I!aoYHOl$irxLqJs_Fp1DUagAHQ1CF2kMP z)XP^?ZSjsXZ*`%zKCd!s-mvApsbp}jH3jk+5?-tivQGr5CjOXA+Kg1rwB=5UR%Tg@ zG#-1_a#Uz+-%`2Gj5oAKJlodN11gnPD!bd>z|@mzYO=F{>|=am>}l~+@~h?=@aUu7 z%2b_!!#XxhHtv=u4tc%0G^*IrlXY{MsS;>Jozc#^8wsifhPEw5Sb$Z;rFLa5zTjeJ z0vKgz8g5`K z5j_N~B{r%$zbYBIQHcxW=6Xqmt643E&ta6-`46)Qxz+#2>A2Y zvIgl<1rEBo?(Ko~*2pyJNB=kxIT^E>zV)8Yw$q%+MAL`|5$a}aH1}7TJ3tdO)3@nr zk4jE`C$dbm5}b)Iv?=Ch#da~i207JNM4P*BYaqm|%t=ztt-&15(LT2%4_T=Yj*Z4m zm4&)5qj41j9l5Tjy&1ObX){B1ZB2EFe#=(d)8$Yo7cUQ!QXUmHXie3f@S2$)gCd&0 z%-Gaqw-`C;MjDi86`lK?t#WtX6}T6=AsJ@fyLFm7AIiEC;Mbn*=ThDqYq+Wu+$=WtBLu|(D_`%??WUe{Jkw{)E` zug94^jmMBBVk!6p`!8tqI$GmCxlp}*AdOfn5vKU#Zer;VP<`v8a%m6jeuVUXeW&!M zJ9(P}E>-J!1}Dk7J%)Zh3ygbz5&PJ2;$9kl3PIP7-E}nlUv`1S-EiA_#7JHS;ijGj?Awz&nqVa(aqX==&28Zo zF44BSeA@SRHm-HIIyBo=2+(Q*ww1z{OHdY=4bJ9y^`x%~sczbL$ z#VT5~)PbFKD}21k>s2G@t^zpc;}tz2!RZx<7Y>$XM6?TGD6jE_$)m%ZB$0@2Ckvv? z2f)e!JxfWl8Eh99fz$(}0^Rib5tm-N)p6$v74Jg*^~B(;HnVd&&xWV7wJzo#aVRxQEBDT;eydcXI6`c+)oZISJu5#{;0)j(TnVe}OUD)IspTq`u2Ai3JX3s><1K zHMa_mP2!)nre~?Cf&JsEVoPg?q(Tl;ub?vIYW*6`>=Z04b=d(CQcJEbqY)Tc7889x z3Hl!%kaY9O|m5_$Lj7;^zsnGm?5(`&$^ZIy&YiY@QE`g~5 znp96}+?$bV{&;e5en>NiFpM&X6@6T<;_Vq1P8g0<9*@4={+PklzaFdgF&ZTaehxSZ z@RW)5qfs|2P1O@NSYF3$q>FG3Ht<-tyu&1$KQz;6lvznCT6%M!zkTNzo^bImXx8E8 z(m~D`^lB*Md~aw82XZX&9R4gct^UVW3`}Krp0QmkqlrBfF2YSlppem&4c=i0|)ox|=U6oyc8kTXze9Xj~FPNuv*26<9 z3p*@(8s>c<2p7?tuGF?kRwJ)}Dqp>77OD}Aasqj+UUL9*42imh6yMEOcBG)Rq%)6! zY=4Z*eu-g&H-!pq%>qsfrwV(c-+8B&-E;9D_vlqv65YSJ#0mv-sh^82V)qQ$Gv!$yyFb15LlHHRWvh8$?gn-CGi$@DZTY`?eA zOC`}qD{^bVxM};6YvRsly`Jc9rK=~u)^9q!(*$EHuvME% zI6@EaWEX-^pwDYmo4Bt2KC-*#n}S=p^_ycSk-DIm(Eshh~l)fE4aDT%Q?aV4SB z;}G=c_HTM8Sp=PKxpu`Awr$padZB5v*$mglSIJH;^$4y@(m(e3O6Y3eD%?WS(iB^) zG1q2oSB}%gVcK{EN#hv3Xaw)x&I{Z&^(qe^mGUTk!j_SKho3lV*;m)M%fzt~+q~mT zBG|U>&6-sipVcyPm43>U*}v_vq0wok?3qS5C<(0DB`GbR2k+2AB7OTYlF15xK6N^e zdQTCk4RWr3_g*3$rgLw2A>Ie)qp12S+c*Glk(_EzurlfV)dxZQHcpod+k@0ovN8&m zMoJA*mGzZ8g-AP;lo)a#HNyr?v)X8vng+V&kC=_(l){Aint~WMiJz4sYxpV0`JJgD z)kckGm;Fx5Q60j`r)Lg^1X}GGdeqL!-V%IzmU6hD?rWwS4KCpM-gjM7nT+3;)T>8g zC#yP-C1#0)>60I*A<&K6M2fEqOjS$52CmhLgfHaoAS)>AW_`!S=RWLhZW;J%^3c&Hktjd$SSRSL|V@QP?Vj9~B)6R~~)fSmb`^Y};@C~VVbN5wDi^lFc z^uHP$i^fAiCix~>kU^bJXl1B-Srms_9hS|r9a~7v(yG|ANmj@kunT1zIGfhYg(^v^ zxZ>~>1{q-)v$@px5(RC+oVrc=+S>DWz7#(Mcg~3bj>`AJVK{JG2G+$gj~<>5kx@HB zh{t!EYbhKyLQ9>~es<+{L(zFcDMKz3ImW)W%vn{Eu}+$6`KgPtj_R5Z`3>2dYq zx`vg1vtuykxilbJ#_ekA(k@W2>Dchzs@-{$se-o+)U6pagPg;|e5PTt>*-kw`y|x>+g_G5k#JjdHnJ1`PhZsGEMeQlLhU>9g0@S7| z!Kk^(kmRCl*qSOiHiy(e6U>&s{o~=$f(z&9ty;LXamOY2DxStWX!=J~LxV+!-9uX+ zpGVBE>qw6I#Fqk^pJ)9ZGB({)@%@A$_y7bzxT<4Ym6J`@=Seb4 zt$H%T7E*U=KFJ_rB!FcxlW;MMm>^;gN*Nb7xLt>&ROmwpydbmuHBkilS>oDd3RYH2 z_lpOEN5J4)-w35RTZ(#Q+aX?b8+YZJRGIIjGSrJSYL%l)9n_1(te=5w{z=3~lCR2N VjpJbA|K8ZaXWKe?5Csqr{{z9y*1Z4# diff --git a/docs/queue-worker-0.1.5.tgz b/docs/queue-worker-0.1.5.tgz index 22a94053cf34ce342b170597c7a143303d0bc2eb..0bbad4186e96c4a53fd21d366948fec8b518d764 100644 GIT binary patch delta 3166 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 E02P@*sQ>@~ delta 3165 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 DK7=Nm diff --git a/docs/sns-connector-0.1.2.tgz b/docs/sns-connector-0.1.2.tgz index 5728d60faeb6ed47dc2557cf454d8a2716746975..99f17cdce58fc8bf9737a15e8e2d08eee4ae1a75 100644 GIT binary patch delta 4077 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 delta 4077 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 delta 4073 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 b^jXqVc`8rkuT}mx00960Gw~1l07?J=2%`d_ diff --git a/yaml/alertmanager-dep.yml b/yaml/alertmanager-dep.yml index 3023bd09a..e8f0745c3 100644 --- a/yaml/alertmanager-dep.yml +++ b/yaml/alertmanager-dep.yml @@ -18,7 +18,7 @@ spec: app: alertmanager annotations: sidecar.istio.io/inject: "true" - checksum/alertmanager-config: "c2f1584006a8de11ba280c56d56f1054471da20cd5ed9b04dc9fb0a08abebaef" + checksum/alertmanager-config: "0c1e53dfa7e125483062bf2b4a01a876ede755728162b7409b4d633a7949bba0" spec: containers: - name: alertmanager diff --git a/yaml/prometheus-dep.yml b/yaml/prometheus-dep.yml index 89d4ebbd7..9f82ce403 100644 --- a/yaml/prometheus-dep.yml +++ b/yaml/prometheus-dep.yml @@ -18,7 +18,7 @@ spec: app: prometheus annotations: sidecar.istio.io/inject: "true" - checksum/prometheus-config: "b578fa1ca526a86eb12c973a59242e25aee6d28062271f2fb64eccfa0c614a19" + checksum/prometheus-config: "db295b2ace35d31d060abe21e9fd9b095786b61ad3005bbddd0b424d4c669050" spec: serviceAccountName: openfaas-prometheus containers: From bbe0e728f4c6183d44496ad69e86cb402545838f Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Mon, 20 Feb 2023 17:09:13 +0000 Subject: [PATCH 36/37] Updates for OpenFaaS IAM Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- chart/openfaas/templates/gateway-dep.yaml | 3 +++ chart/openfaas/templates/gateway-svc.yaml | 4 ++++ chart/openfaas/values-pro.yaml | 24 +++++++++++++++++++++++ 3 files changed, 31 insertions(+) diff --git a/chart/openfaas/templates/gateway-dep.yaml b/chart/openfaas/templates/gateway-dep.yaml index f5fb0d71b..a61175d6c 100644 --- a/chart/openfaas/templates/gateway-dep.yaml +++ b/chart/openfaas/templates/gateway-dep.yaml @@ -31,11 +31,14 @@ spec: serviceAccountName: {{ .Release.Name }}-controller {{- end }} volumes: +<<<<<<< HEAD {{- if .Values.oidcAuthPlugin.enabled }} - name: issuer-key secret: secretName: issuer-key {{- end}} +======= +>>>>>>> Updates for OpenFaaS IAM # - name: faas-auth # projected: # sources: diff --git a/chart/openfaas/templates/gateway-svc.yaml b/chart/openfaas/templates/gateway-svc.yaml index fe5779397..08d1f4a3d 100644 --- a/chart/openfaas/templates/gateway-svc.yaml +++ b/chart/openfaas/templates/gateway-svc.yaml @@ -20,5 +20,9 @@ spec: port: 8081 targetPort: 8081 protocol: TCP + - name: provider + port: 8081 + targetPort: http + protocol: TCP selector: app: gateway diff --git a/chart/openfaas/values-pro.yaml b/chart/openfaas/values-pro.yaml index 1c5a2c48d..fa76bf7c7 100644 --- a/chart/openfaas/values-pro.yaml +++ b/chart/openfaas/values-pro.yaml @@ -59,6 +59,19 @@ autoscaler: # https://docs.openfaas.com/reference/namespaces/ clusterRole: true +faasnetesPro: + image: ttl.sh/alexellis2/faas-netes-pro:r2 + +# HPA CPU? 3 <=> 6 +# If you have purchased licenses for 6 gateway replicas for this environment +# you can create a HPA rule to scale on CPU, but you must not scale beyond +# what's been purchased. +gateway: + replicas: 1 + authProxyUrl: "https://auth.exit.o6s.io" + +gatewayPro: + image: ttl.sh/alexellis2/gateway:0.2.13-10-gc48b60ed # Required gateway configuration for Istio # directFunctions: true @@ -88,3 +101,14 @@ queueMode: jetstream nats: streamReplication: 1 + # For timeouts longer than 60 seconds see: + # https://docs.openfaas.com/tutorials/expanded-timeouts/ + +oidcAuthPlugin: + enabled: false + verbose: true # debug setting + openidURL: "https://alexellis.eu.auth0.com/.well-known/openid-configuration" + audience: https://alexellis.eu.auth0.com/api/v2/ + baseHost: "https://gw.exit.o6s.io" + image: ttl.sh/alexellis/openfaas-oidc-plugin:0.5.5-10-g269b915-dirty + From 639ec94e1885651e2cf647360355a7308a57abd5 Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Thu, 13 Apr 2023 17:09:19 +0100 Subject: [PATCH 37/37] Fix merge of gateway template Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- chart/openfaas/templates/gateway-dep.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/chart/openfaas/templates/gateway-dep.yaml b/chart/openfaas/templates/gateway-dep.yaml index a61175d6c..f5fb0d71b 100644 --- a/chart/openfaas/templates/gateway-dep.yaml +++ b/chart/openfaas/templates/gateway-dep.yaml @@ -31,14 +31,11 @@ spec: serviceAccountName: {{ .Release.Name }}-controller {{- end }} volumes: -<<<<<<< HEAD {{- if .Values.oidcAuthPlugin.enabled }} - name: issuer-key secret: secretName: issuer-key {{- end}} -======= ->>>>>>> Updates for OpenFaaS IAM # - name: faas-auth # projected: # sources: