---
# System prepended metadata

title: '**istio **'

---

# **istio **
for pods to coummnicate an extra layer of service mesh is implemented . a different namespace "istio". 
Istio container are injected inside the pods . These are proxy pods . Every pods which wants to communicate with different pods will send the netwrok request to istio proxy container . 
IN the istio-system name space there are a lot of other pods also . telemetry pods for capturing the netrowk metrics . All the requests are kept in db with network request with timestamp for analysis.

control plane and data plane .
data plane : the proxies that are injected 
control plane : all the pods that implements the functionaly are collectevily called control plane 

individual proxies that makes up service mesh are called sidecars--sidecars because they run alongside to 
each service rathen than within them . these side cars proxy sits along the microserviceand routes to other proxy
Together they form a mesh network 

Prior to this intercommunication logic will be written by develoiper inside microservice. 

:+1: 
Service Identity and Security. Provide services in the mesh with a verifiable identity and provide the ability to protect service traffic as it flows over networks of varying degrees of trustability.

Citadel
Citadel provides strong service-to-service and end-user authentication with built-in identity and credential management. You can use Citadel to upgrade unencrypted traffic in the service mesh. Using Citadel, operators can enforce policies based on service identity rather than on network controls.

# Links 
reference link :+1: 
https://developers.redhat.com/courses/service-mesh/istio-introduction

Installation : 
For installation of docker otherthan podman use amazon linux . Install docker kubernetes and then minikube . Open all traffic in AWS . expose the service to nodeport .
https://kubernetes.io/docs/tasks/tools/
https://thenewstack.io/how-to-install-a-kubernetes-cluster-on-red-hat-centos-8/
https://www.zekelabs.com/blog/how-to-install-kubernetes-cluster-on-aws-ec2-instances/

Minikube Commands : https://minikube.sigs.k8s.io/docs/start/
Dashboard :
istio installation 
 https://istio.io/latest/docs/tasks/observability/metrics/using-istio-dashboard/
https://istio.io/latest/docs/ops/integrations/prometheus/#option-1-quick-start
https://istio.io/latest/docs/ops/integrations/grafana/#option-1-quick-start
https://istio.io/latest/docs/setup/getting-started/

Istio katacoda Tutorials
https://www.katacoda.com/courses/istio/deploy-istio-on-kubernetes

Istio Authentication
https://istio.io/latest/docs/tasks/security/authentication/authn-policy/#require-a-valid-token
go to above link .After creating the namespaces . Go to end user authentication

Istio Service to service communication 
https://istio.io/latest/docs/tasks/security/authorization/authz-http/

https://www.keycloak.org/2018/02/keycloak-and-istio.html ---not of much use 

Istio Authorization 
https://istio.io/latest/docs/tasks/security/authorization/authz-jwt/

Istio Authentication with Auze jwt 
https://www.paraesthesia.com/archive/2020/09/03/setting-up-oauth2-proxy-with-istio/

Istio Virtualservice and destination rule using Kiali ;Kiali documentation 
https://kiali.io/documentation/latest/tutorial/#01-deploy-travels-demo

Kiali dashboard explained 
https://kiali.io/documentation/latest/faq/

# environment variables istio and authc
cd 
cd istio-1.9.0
ls -larth
export PATH=$PWD/bin:$PATH

export INGRESS_HOST=$(minikube ip)

export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')

export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}')

  
## services within tutorial namespace communicates with mTLS
     
     *https://next.nutanix.com/karbon-kubernetes-orchestration-30/istio-service-mesh-on-nutanix-karbon-32639*
 
Add a namespace label to instruct Istio to automatically inject Envoy sidecar proxies when you deploy your application later:
applicatin are pods in Kali U i
istio graph timeline cannot go to large window 

It can find the service problem . That there is a problem between two services 

********************************************
# aws history kubernetesinstallation, minikube installation , istio 1.9 installation
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: "2021-02-23T12:56:23Z"
  labels:
    app: kiali
    app.kubernetes.io/instance: kiali-server
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: kiali
    app.kubernetes.io/part-of: kiali
    app.kubernetes.io/version: v1.29.0
    helm.sh/chart: kiali-server-1.29.0
    version: v1.29.0
  managedFields:
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:labels:
          .: {}
          f:app: {}
          f:app.kubernetes.io/instance: {}
          f:app.kubernetes.io/managed-by: {}
          f:app.kubernetes.io/name: {}
          f:app.kubernetes.io/part-of: {}
          f:app.kubernetes.io/version: {}
          f:helm.sh/chart: {}
          f:version: {}
      f:spec:
        f:externalTrafficPolicy: {}
        f:ports:
          .: {}
          k:{"port":20001,"protocol":"TCP"}:
            .: {}
            f:port: {}
            f:protocol: {}
            f:targetPort: {}
        f:selector:
          .: {}
          f:app.kubernetes.io/instance: {}
          f:app.kubernetes.io/name: {}
        f:sessionAffinity: {}
        f:type: {}
    manager: kubectl-expose
    operation: Update
    time: "2021-02-23T12:56:23Z"
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:spec:
        f:ports:
          k:{"port":9090,"protocol":"TCP"}:
            .: {}
            f:name: {}
            f:nodePort: {}
            f:port: {}
            f:protocol: {}
            f:targetPort: {}
          k:{"port":20001,"protocol":"TCP"}:
            f:name: {}
    manager: kubectl-edit
    operation: Update
    time: "2021-02-23T13:07:59Z"
  name: kiali
  namespace: istio-system
  resourceVersion: "4607"
  uid: 2a6fc3df-130b-495b-b005-510c90cf536a
spec:
  clusterIP: 10.96.187.198
  clusterIPs:
  - 10.96.187.198
  externalTrafficPolicy: Cluster
  ports:
  - name: http
    nodePort: 30220
    port: 20001
    protocol: TCP
    targetPort: 20001
  - name: http-metrics
    nodePort: 30221
    port: 9090
    protocol: TCP
    targetPort: 9090
  selector:
    app.kubernetes.io/instance: kiali-server
    app.kubernetes.io/name: kiali
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}

*****************************************


*********************************************************
History from ec2 instance : 

    1  grep -E --color 'vmx|svm' /proc/cpuinfo
    2  yum install -y kubectl
    3  cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    4  [kubernetes]
    5  name=Kubernetes
    6  baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
    7  enabled=1
    8  gpgcheck=1
    9  repo_gpgcheck=1
   10  gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
   11  EOF
   12  yum install -y kubectl
   13  curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64   && chmod +x minikube
   14  sudo mkdir -p /usr/local/bin/
   15  sudo install minikube /usr/local/bin/
   16  minikube start --vm-driver=none
   17  yum install docker
   18  minikube start --vm-driver=none
   19  ls
   20  ls -larth
   21  rm -rf minikube 
   22  curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
   23   sudo install minikube-linux-amd64 /usr/local/bin/minikube
   24  minikube start
   25  systemctl start docker
   26  minikube start
   27  minikube start --driver=none
   28  yum install docker -y 
   29  systemctl enable docker && systemctl start docker
   30  cd /etc/yum.repos.d/
   31  ls -larth
   32  rm -rf kubernetes.repo 
   33  cat <<EOF > /etc/yum.repos.d/kubernetes.repo
   34  [kubernetes]
   35  name=Kubernetes
   36  baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
   37  enabled=1
   38  gpgcheck=1
   39  repo_gpgcheck=0
   40  gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
   41  exclude=kube*
   42  EOF
   43  ls -larth
   44  cat <<EOF >  /etc/sysctl.d/k8s.conf
   45  net.bridge.bridge-nf-call-ip6tables = 1
   46  net.bridge.bridge-nf-call-iptables = 1
   47  EOF
   48  sysctl --system
   49  setenforce 0
   50  yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
   51  systemctl enable kubelet && systemctl start kubele
   52  systemctl enable kubelet && systemctl start kubelet
   53  sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --ignore-preflight-
   54  errors=NumCPU
   55  sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --ignore-preflight
   56  kubeadm init --pod-network-cidr=192.168.0.0/16
   57    mkdir -p $HOME/.kube
   58    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
   59    sudo chown $(id -u):$(id -g) $HOME/.kube/config
   60  export KUBECONFIG=/etc/kubernetes/admin.conf
   61  kubectl get nodes
   62  cd
   63  curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.x86_64.rpm
   64  sudo rpm -ivh minikube-latest.x86_64.rpm
   65  minikube start
   66  minikube start --driver=none
   67  kubectl get nodes
   68  curl -L https://istio.io/downloadIstio | sh -
   69  cd istio-1.9.0
   70  ls -larth
   71  export PATH=$PWD/bin:$PATH
   72  hostname
   73  history
   74  cd
   75  cd istio-1.9.0/
   76  ls -larth
   77  pwd
   78  echo $PATH
   79  export PATH=$PWD/bin:$PATH
   80  echo $PATH
   81  istioctl install --set profile=demo -y
   82  kubectl get nodes
   83  kubectl get pods
   84  kubectl version
   85  netstat -alpn | grep 6443
   86  systemctl status kubectl
   87  systemctl enable kubelet && systemctl start kubelet
   88  systemctl status kubectl
   89  echo $HOME
   90  ls -larth /root/
   91  mkdir -p $HOME/.kube
   92  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
   93  sudo chown $(id -u):$(id -g) $HOME/.kube/config
   94  kubectl get nodes
   95  minikube start
   96  kubectl get nodes
   97  kubectl version
   98  kubectl get nodes
   99  systemctl status kubectl
  100  cd istio-1.9.0/
  101  export PATH=$PWD/bin:$PATH
  102  istioctl install --set profile=demo -y
  103  kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.9/samples/addons/grafana.yaml
  104  kubectl get pods -n istio-system
  105  kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.9/samples/addons/prometheus.yaml
  106  kubectl get pods -n istio-system
  107  watch kubectl get pods -n istio-system
  108  kubectl apply -f samples/addons
  109  kubectl rollout status deployment/kiali -n istio-system
  110  kubectl get pods -n istio-system
  111  istioctl dashboard kiali
  112  kubectl get svc -n istio-system
  113  curl 10.108.4.4:20001
  114  curl 10.108.4.4:9090
  115* kubectl get svc 
  116  kubectl get svc -n istio-system kiali                  
  117  kubectl describe svc -n istio-system kiali                  
  118  kubectl edit svc -n istio-system kiali                  
  119  kubectl describe svc -n istio-system kiali -o kiali.yaml
  120  kubectl describe svc -n istio-system kiali -o > kiali.yaml
  121  kubectl describe svc -n istio-system kiali > kiali.yaml
  122  ls -larth
  123  cat kiali.yaml 
  124  kubectl get svc -n istio-system kiali -o kiali.yaml
  125  kubectl get svc -n istio-system kiali -o kiali_get.yaml --export
  126  kubectl edit svc -n istio-system kiali                  
  127  ls -larth
  128  cd samples/
  129  ls -larth
  130  cd addons/
  131  ls -larth
  132  vi kiali.yaml 
  133  cat kiali.yaml 
  134  cp kiali.yaml kiali.yaml_backup
  135  vi kiali.yaml
  136  kubectl get deployment
  137  kubectl get deployment -n isitio-system
  138  kubectl get deployment -n istio-system
  139  kubectl get  svc -n istio-system kiali                  
  140  kubectl get pods -n istio-system
  141  kubectl delete svc -n istio-system kiali
  142  kubectl get  svc -n istio-system kiali                  
  143  kubectl get pods -n istio-system
  144  kubectl get  svc -n istio-system
  145  kubectl get deployment -n istio-system
  146  kubectl get deployment -n istio-system kiali                  
  147  cd
  148  ls -larth
  149  cd istio-1.9.0/
  150  ls -larth
  151  cat kiali.yaml 
  152  kubectl expose deployment kiali --name=kiali --port=20001 --target-port=20001 --type=NodePort
  153  kubectl get deployment -n istio-system
  154  kubectl expose deployment kiali                   --name=kiali --port=20001 --target-port=20001 --type=NodePort
  155  kubectl expose deployment kiali --port=20001 --target-port=20001 --type=NodePort
  156  kubectl expose deployment -n istio-system kiali --port=20001 --target-port=20001 --type=NodePort
  157  kubectl get  svc -n istio-system
  158  curl 10.96.187.198:20001
  159  hostname -i
  160  curl 172.31.86.161:30220
  162  kubectl get  svc -n istio-system
  165  kubectl get  svc -n istio-system kiali                  
  166  kubectl edit  svc -n istio-system kiali                  
  167  kubectl get  svc -n istio-system
  168  history
  169  history > /home/ec2-user/history_new.txt



**********************************************


root@ip-172-31-86-161 istio-1.9.0]# kubectl describe  svc -n istio-system kiali
Name:                     kiali
Namespace:                istio-system
Labels:                   app=kiali
                          app.kubernetes.io/instance=kiali-server
                          app.kubernetes.io/managed-by=Helm
                          app.kubernetes.io/name=kiali
                          app.kubernetes.io/part-of=kiali
                          app.kubernetes.io/version=v1.29.0
                          helm.sh/chart=kiali-server-1.29.0
                          version=v1.29.0
Annotations:              <none>
Selector:                 app.kubernetes.io/instance=kiali-server,app.kubernetes.io/name=kiali
Type:                     NodePort
IP Families:              <none>
IP:                       10.96.187.198
IPs:                      10.96.187.198
Port:                     http  20001/TCP
TargetPort:               20001/TCP
NodePort:                 http  30220/TCP
Endpoints:                172.17.0.9:20001
Port:                     http-metrics  9090/TCP
TargetPort:               9090/TCP
NodePort:                 http-metrics  30221/TCP
Endpoints:                172.17.0.9:9090
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

*********************************************************************
spec:
  clusterIP: 10.96.187.198
  clusterIPs:
  - 10.96.187.198
  externalTrafficPolicy: Cluster
  ports:
  - name: http
    nodePort: 30220
    port: 20001
    protocol: TCP
    targetPort: 20001
  - name: http-metrics
    nodePort: 30221
    port: 9090
    protocol: TCP
    targetPort: 9090
  selector:
    app.kubernetes.io/instance: kiali-server
    app.kubernetes.io/name: kiali
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}
  
  
****************************************

To be edit using edit command 

ports:
  - name: http
    nodePort: 30220
    port: 20001
    protocol: TCP
    targetPort: 20001
  - name: http-metrics
    nodePort: 30221
    port: 9090
    protocol: TCP
    targetPort: 9090

****************************************

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: "2021-02-23T12:56:23Z"
  labels:
    app: kiali
    app.kubernetes.io/instance: kiali-server
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: kiali
    app.kubernetes.io/part-of: kiali
    app.kubernetes.io/version: v1.29.0
    helm.sh/chart: kiali-server-1.29.0
    version: v1.29.0
  managedFields:
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:labels:
          .: {}
          f:app: {}
          f:app.kubernetes.io/instance: {}
          f:app.kubernetes.io/managed-by: {}
          f:app.kubernetes.io/name: {}
          f:app.kubernetes.io/part-of: {}
          f:app.kubernetes.io/version: {}
          f:helm.sh/chart: {}
          f:version: {}
      f:spec:
        f:externalTrafficPolicy: {}
        f:ports:
          .: {}
          k:{"port":20001,"protocol":"TCP"}:
            .: {}
            f:port: {}
            f:protocol: {}
            f:targetPort: {}
        f:selector:
          .: {}
          f:app.kubernetes.io/instance: {}
          f:app.kubernetes.io/name: {}
        f:sessionAffinity: {}
        f:type: {}
    manager: kubectl-expose
    operation: Update
    time: "2021-02-23T12:56:23Z"
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:spec:
        f:ports:
          k:{"port":9090,"protocol":"TCP"}:
            .: {}
            f:name: {}
            f:nodePort: {}
            f:port: {}
            f:protocol: {}
            f:targetPort: {}
          k:{"port":20001,"protocol":"TCP"}:
            f:name: {}
    manager: kubectl-edit
    operation: Update
    time: "2021-02-23T13:07:59Z"
  name: kiali
  namespace: istio-system
  resourceVersion: "4607"
  uid: 2a6fc3df-130b-495b-b005-510c90cf536a
spec:
  clusterIP: 10.96.187.198
  clusterIPs:
  - 10.96.187.198
  externalTrafficPolicy: Cluster
  ports:
  - name: http
    nodePort: 30220
    port: 20001
    protocol: TCP
    targetPort: 20001
  - name: http-metrics
    nodePort: 30221
    port: 9090
    protocol: TCP
    targetPort: 9090
  selector:
    app.kubernetes.io/instance: kiali-server
    app.kubernetes.io/name: kiali
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}

**********************************************  
# Mysql Installation and user creation
root : Root@123
fsuser : Fsuser@123
login : mysql -u root -p

GRANT ALL PRIVILEGES ON * . * TO 'fsuser'@'localhost';

Link : https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql

Token :-1: 

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Im5PbzNaRHJPRFhFSzFqS1doWHNsSFJfS1hFZyJ9.eyJhdWQiOiIzMjhiMDhiMS1iNzc2LTQ4ZjAtYTQ3NC1mYWEzYjkyN2FlYWYiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vM2M4ZWEwZTQtMTI3Yy00YTAyLWFjNjUtNTg4MzBlNGFjNjA4L3YyLjAiLCJpYXQiOjE2MTYwNTg1MTcsIm5iZiI6MTYxNjA1ODUxNywiZXhwIjoxNjE2MDYyNDE3LCJhaW8iOiJBWVFBZS84VEFBQUFvS0tlbHZHVG9Fa3IwbzFkRHQvZW9ING1QRzlnaTd4T3l1Mi9HcW1SaUE4KzZnR0JWUjlzQkd1aTVGanRUcG9BS2hFdTNtcm5wMjg5ZmZHMDJRTHBORzAwaDhSMWtzSk1kRDJPU0tPb0dGcURPWlBOU21Fc2RKZkxmTTFaY1N5cDMrVUNwem9oWGprTEIvSG1CZmYxczUxQVI2ai9wZUUyNGs3aUJrUVVLSnM9IiwiYXpwIjoiNWUxMzAxYmItYzBjNC00ZjQ2LWEyNmMtMjA0NzI3MDNmZDgyIiwiYXpwYWNyIjoiMSIsImdyb3VwcyI6WyJjMzkxODI0Mi1hYjJjLTRjZGYtYjNkMC1lMzRiZTg4OTUyMTYiXSwiaWRwIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNDA0YjE5NjctNjUwNy00NWFiLThhNmQtNzM3NGEzZjQ3OGJlLyIsIm5hbWUiOiJLYXVzaGlrIEt1bWFyIiwib2lkIjoiNjQ5NTRmNmQtNTBkMi00N2U5LTg5MTYtODBjNDA5M2NlYzEyIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiNTQ2NjgyQFRDUy5jb20iLCJyaCI6IjAuQUFBQTVLQ09QSHdTQWtxc1pWaUREa3JHQ0xzQkUxN0V3RVpQb213Z1J5Y0RfWUpVQUxvLiIsInNjcCI6IkZpbGVzLlJlYWQiLCJzdWIiOiJVYzUwUXI4WnZmakJRRlBNcUV3cW9hTlJCQy1JWno1LXFzWDNhRGxCSnRZIiwidGlkIjoiM2M4ZWEwZTQtMTI3Yy00YTAyLWFjNjUtNTg4MzBlNGFjNjA4IiwidXRpIjoiblVjVThCVnB6RW1NSHdORi1YQ3lBQSIsInZlciI6IjIuMCIsIndpZHMiOlsiMTNiZDFjNzItNmY0YS00ZGNmLTk4NWYtMThkM2I4MGYyMDhhIl19.Q_eAPMg07rmkUtEQUxAYJR8K5bD2zd2vP26YSz_x80bkyVWvY9HFVkTsY-vwjiTGAaNmbu8fQsGG3RxQN9cJRmMRBGuugnWtNtdj1zegMq791PqDno_xUveE13ZdPAUehw8Q_bX22O8rg98TnDId71RoQoXwDONjVma9qF0jJuTTAFPhysyP9JffzTNS10VGBycNiTLU-M0CGzmenItCNGiJUNBpmwfxY3lHFfPJO8jf-B-2yg1fMeGNOwDppjL97D0w4Ee_G11KwjYKbNTuDXzq6O2DT29Yie6DDYIbU_miLN4BFYBT99I15s8dOtFn-Wg6luCDT_xrXup7M6Egyw


# curl command
curl --location --request GET 'http://54.91.207.155:31089/greeting' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Im5PbzNaRHJPRFhFSzFqS1doWHNsSFJfS1hFZyJ9.eyJhdWQiOiIzMjhiMDhiMS1iNzc2LTQ4ZjAtYTQ3NC1mYWEzYjkyN2FlYWYiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vM2M4ZWEwZTQtMTI3Yy00YTAyLWFjNjUtNTg4MzBlNGFjNjA4L3YyLjAiLCJpYXQiOjE2MTYwNTg1MTcsIm5iZiI6MTYxNjA1ODUxNywiZXhwIjoxNjE2MDYyNDE3LCJhaW8iOiJBWVFBZS84VEFBQUFvS0tlbHZHVG9Fa3IwbzFkRHQvZW9ING1QRzlnaTd4T3l1Mi9HcW1SaUE4KzZnR0JWUjlzQkd1aTVGanRUcG9BS2hFdTNtcm5wMjg5ZmZHMDJRTHBORzAwaDhSMWtzSk1kRDJPU0tPb0dGcURPWlBOU21Fc2RKZkxmTTFaY1N5cDMrVUNwem9oWGprTEIvSG1CZmYxczUxQVI2ai9wZUUyNGs3aUJrUVVLSnM9IiwiYXpwIjoiNWUxMzAxYmItYzBjNC00ZjQ2LWEyNmMtMjA0NzI3MDNmZDgyIiwiYXpwYWNyIjoiMSIsImdyb3VwcyI6WyJjMzkxODI0Mi1hYjJjLTRjZGYtYjNkMC1lMzRiZTg4OTUyMTYiXSwiaWRwIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNDA0YjE5NjctNjUwNy00NWFiLThhNmQtNzM3NGEzZjQ3OGJlLyIsIm5hbWUiOiJLYXVzaGlrIEt1bWFyIiwib2lkIjoiNjQ5NTRmNmQtNTBkMi00N2U5LTg5MTYtODBjNDA5M2NlYzEyIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiNTQ2NjgyQFRDUy5jb20iLCJyaCI6IjAuQUFBQTVLQ09QSHdTQWtxc1pWaUREa3JHQ0xzQkUxN0V3RVpQb213Z1J5Y0RfWUpVQUxvLiIsInNjcCI6IkZpbGVzLlJlYWQiLCJzdWIiOiJVYzUwUXI4WnZmakJRRlBNcUV3cW9hTlJCQy1JWno1LXFzWDNhRGxCSnRZIiwidGlkIjoiM2M4ZWEwZTQtMTI3Yy00YTAyLWFjNjUtNTg4MzBlNGFjNjA4IiwidXRpIjoiblVjVThCVnB6RW1NSHdORi1YQ3lBQSIsInZlciI6IjIuMCIsIndpZHMiOlsiMTNiZDFjNzItNmY0YS00ZGNmLTk4NWYtMThkM2I4MGYyMDhhIl19.Q_eAPMg07rmkUtEQUxAYJR8K5bD2zd2vP26YSz_x80bkyVWvY9HFVkTsY-vwjiTGAaNmbu8fQsGG3RxQN9cJRmMRBGuugnWtNtdj1zegMq791PqDno_xUveE13ZdPAUehw8Q_bX22O8rg98TnDId71RoQoXwDONjVma9qF0jJuTTAFPhysyP9JffzTNS10VGBycNiTLU-M0CGzmenItCNGiJUNBpmwfxY3lHFfPJO8jf-B-2yg1fMeGNOwDppjL97D0w4Ee_G11KwjYKbNTuDXzq6O2DT29Yie6DDYIbU_miLN4BFYBT99I15s8dOtFn-Wg6luCDT_xrXup7M6Egyw'