From d7ca387cf634b793509f52df214fd04e17e2847c Mon Sep 17 00:00:00 2001 From: smundhe Date: Fri, 20 Oct 2023 17:26:24 +0530 Subject: [PATCH] TTP v1.3.0 release with support ACOS_6.0.1. --- README.md | 389 +- .../Jenkins Pipeline Configuration Guide.pdf | Bin 0 -> 620284 bytes devops/jenkins/pipeline.groovy | 137 + .../Tekton Pipeline Configuration Guide.pdf | Bin 0 -> 243095 bytes devops/tekton/pipeline.yaml | 53 + devops/tekton/task.yaml | 111 + docs/A10_TTP_1.2.0.pdf | Bin 553752 -> 0 bytes docs/data-sources/clock_show_oper.md | 41 + .../interface_available_eth_list_oper.md | 47 + docs/data-sources/plat_cpu_packet_oper.md | 46 + docs/data-sources/sessions_oper.md | 219 + docs/data-sources/slb_http_proxy_oper.md | 379 ++ docs/data-sources/slb_server_oper.md | 201 + docs/data-sources/slb_ssl_stats_oper.md | 119 + docs/data-sources/syslog_oper.md | 46 + .../system_app_performance_stats.md | 48 + .../system_cpu_ctrl_cpu_oper.md | 4 +- .../system_cpu_data_cpu_oper.md | 4 +- docs/data-sources/system_hardware_oper.md | 117 + docs/data-sources/system_memory_oper.md | 101 + docs/data-sources/system_throughput_stats.md | 37 + docs/resources/access_list_extended.md | 32 + docs/resources/access_list_standard.md | 27 + docs/resources/admin_password.md | 13 + docs/resources/banner.md | 22 +- docs/resources/bgp.md | 18 +- docs/resources/class_list.md | 98 +- .../cloud_services_cloud_provider_aws_log.md | 44 + ...oud_services_cloud_provider_aws_metrics.md | 72 + ...cloud_services_cloud_provider_azure_log.md | 47 + ...d_services_cloud_provider_azure_metrics.md | 80 + ...loud_services_cloud_provider_vmware_log.md | 44 + ..._services_cloud_provider_vmware_metrics.md | 80 + docs/resources/configure_sync.md | 20 +- docs/resources/ethernet.md | 26 +- docs/resources/file_aflex.md | 22 +- docs/resources/file_bw_list.md | 38 +- docs/resources/file_ca_cert.md | 23 +- docs/resources/file_class_list.md | 148 +- docs/resources/file_class_list_convert.md | 146 +- docs/resources/file_csr.md | 22 +- docs/resources/file_geo_location.md | 14 +- docs/resources/file_ssl_cert.md | 23 +- docs/resources/file_ssl_cert_key.md | 21 +- docs/resources/file_ssl_crl.md | 20 +- docs/resources/file_ssl_key.md | 21 +- docs/resources/fw_active_rule_set.md | 16 +- docs/resources/fw_alg_dns.md | 14 +- docs/resources/fw_alg_ftp.md | 17 +- docs/resources/fw_alg_icmp.md | 14 +- docs/resources/fw_alg_pptp.md | 17 +- docs/resources/fw_alg_rtsp.md | 17 +- docs/resources/fw_alg_sip.md | 17 +- docs/resources/fw_alg_tftp.md | 17 +- docs/resources/fw_app.md | 16 +- docs/resources/fw_apply_changes.md | 14 +- docs/resources/fw_clear_session_filter.md | 14 +- docs/resources/fw_full_cone_session.md | 14 +- docs/resources/fw_global.md | 16 +- docs/resources/fw_gtp.md | 17 +- docs/resources/fw_gtp_in_gtp_filtering.md | 14 +- docs/resources/fw_gtp_v0.md | 14 +- docs/resources/fw_helper_sessions.md | 16 +- docs/resources/fw_limit_entry.md | 14 +- docs/resources/fw_local_log.md | 14 +- docs/resources/fw_logging.md | 22 +- docs/resources/fw_radius_server.md | 26 +- docs/resources/fw_resource_usage.md | 14 +- docs/resources/fw_server.md | 31 +- docs/resources/fw_service_group.md | 21 +- docs/resources/fw_status.md | 14 +- docs/resources/fw_system_status.md | 14 +- docs/resources/fw_tap_monitor.md | 17 +- docs/resources/fw_tcp_mss_clamp.md | 15 +- docs/resources/fw_tcp_reset_on_error.md | 14 +- docs/resources/fw_tcp_rst_close_immediate.md | 14 +- docs/resources/fw_tcp_window_check.md | 17 +- docs/resources/fw_template_logging.md | 45 +- docs/resources/fw_top_k_rules.md | 14 +- docs/resources/fw_urpf.md | 14 +- docs/resources/fw_vrid.md | 14 +- docs/resources/glm.md | 27 + docs/resources/glm_send.md | 14 +- docs/resources/gslb_group.md | 38 +- docs/resources/gslb_policy.md | 170 +- docs/resources/gslb_protocol.md | 46 +- docs/resources/gslb_service_ip.md | 34 +- docs/resources/gslb_site.md | 106 +- docs/resources/gslb_template_csv.md | 61 + docs/resources/gslb_template_snmp.md | 79 + docs/resources/gslb_zone.md | 116 +- docs/resources/harmony_controller_profile.md | 23 + docs/resources/health_monitor.md | 52 +- docs/resources/hostname.md | 14 +- docs/resources/interface_ethernet.md | 346 +- docs/resources/interface_ethernet_bfd.md | 28 +- docs/resources/interface_ethernet_ip.md | 118 +- docs/resources/interface_ethernet_ipv6.md | 114 +- docs/resources/interface_ethernet_lldp.md | 38 +- .../interface_ethernet_trunk_group.md | 21 +- docs/resources/interface_lif.md | 54 +- docs/resources/interface_lif_ip.md | 109 +- docs/resources/interface_loopback.md | 42 +- docs/resources/interface_management.md | 70 +- docs/resources/interface_ve.md | 54 +- docs/resources/interface_ve_bfd.md | 26 +- docs/resources/interface_ve_ip.md | 108 +- docs/resources/interface_ve_ipv6.md | 112 +- docs/resources/ip_access_list.md | 23 + docs/resources/ip_address.md | 15 +- docs/resources/ip_dns_primary.md | 14 +- docs/resources/ip_dns_secondary.md | 14 +- docs/resources/ip_dns_suffix.md | 14 +- docs/resources/ip_frag.md | 24 +- docs/resources/ip_icmp.md | 15 +- docs/resources/ip_nat_alg_pptp.md | 17 +- docs/resources/ip_nat_global.md | 14 +- docs/resources/ip_nat_icmp.md | 15 +- docs/resources/ip_nat_pool.md | 19 +- docs/resources/ip_prefix_list.md | 23 +- docs/resources/ip_reroute.md | 22 +- docs/resources/ip_route_rib.md | 56 +- docs/resources/ip_route_static_bfd.md | 15 +- docs/resources/ip_tcp.md | 16 +- docs/resources/ipv6_frag.md | 17 +- docs/resources/ipv6_icmpv6.md | 15 +- docs/resources/ipv6_nat_icmpv6.md | 14 +- docs/resources/ipv6_nat_pool.md | 20 +- docs/resources/ipv6_route_rib.md | 20 +- .../ipv6_route_static_bfd_bfd_ipv6.md | 18 +- .../ipv6_route_static_bfd_ethernet.md | 18 +- docs/resources/ipv6_route_static_bfd_trunk.md | 18 +- docs/resources/ipv6_route_static_bfd_ve.md | 18 +- docs/resources/logging_auditlog.md | 28 +- docs/resources/logging_console.md | 14 +- docs/resources/logging_host_ipv4addr.md | 17 +- docs/resources/logging_host_ipv6addr.md | 17 +- docs/resources/logging_host_partition.md | 14 +- docs/resources/ntp_auth_key.md | 17 +- docs/resources/ntp_server_hostname.md | 16 +- docs/resources/ntp_trusted_key.md | 14 +- docs/resources/overlay_tunnel_options.md | 20 +- docs/resources/overlay_tunnel_vtep.md | 24 +- docs/resources/partition.md | 24 +- docs/resources/reboot.md | 15 +- docs/resources/rib_route.md | 34 +- docs/resources/route_map.md | 172 +- docs/resources/router_bgp.md | 308 +- .../router_bgp_address_family_ipv6.md | 186 +- ...ly_ipv6_neighbor_ethernet_neighbor_ipv6.md | 17 +- ...ress_family_ipv6_neighbor_ipv4_neighbor.md | 41 +- ...ress_family_ipv6_neighbor_ipv6_neighbor.md | 44 +- ...amily_ipv6_neighbor_peer_group_neighbor.md | 44 +- ...amily_ipv6_neighbor_trunk_neighbor_ipv6.md | 19 +- ...s_family_ipv6_neighbor_ve_neighbor_ipv6.md | 18 +- ...ddress_family_ipv6_network_ipv6_network.md | 20 +- ...ess_family_ipv6_network_synchronization.md | 15 +- ...er_bgp_address_family_ipv6_redistribute.md | 74 +- .../router_bgp_neighbor_ethernet_neighbor.md | 18 +- .../router_bgp_neighbor_ipv4_neighbor.md | 71 +- .../router_bgp_neighbor_ipv6_neighbor.md | 72 +- ...router_bgp_neighbor_peer_group_neighbor.md | 66 +- .../router_bgp_neighbor_trunk_neighbor.md | 28 +- .../router_bgp_neighbor_ve_neighbor.md | 17 +- docs/resources/router_bgp_network_ip_cidr.md | 32 +- .../router_bgp_network_synchronization.md | 15 +- docs/resources/router_bgp_redistribute.md | 68 +- docs/resources/router_isis.md | 69 +- docs/resources/router_ospf.md | 202 +- docs/resources/router_ospf_area.md | 49 +- .../router_ospf_default_information.md | 19 +- docs/resources/router_ospf_redistribute.md | 50 +- docs/resources/rule_set.md | 30 +- docs/resources/server.md | 89 +- docs/resources/service_group.md | 113 +- docs/resources/service_partition.md | 51 + docs/resources/slb_aflow.md | 16 +- docs/resources/slb_common.md | 109 +- docs/resources/slb_common_buffer_threshold.md | 18 +- .../slb_common_conn_rate_limit_src_ip.md | 21 +- docs/resources/slb_connection_reuse.md | 16 +- docs/resources/slb_crl_srcip.md | 16 +- docs/resources/slb_dns.md | 16 +- docs/resources/slb_dns_cache.md | 16 +- .../slb_dns_response_rate_limiting.md | 16 +- docs/resources/slb_fast_http_proxy.md | 17 +- docs/resources/slb_fix.md | 16 +- docs/resources/slb_ftp_ctl.md | 16 +- docs/resources/slb_ftp_data.md | 16 +- docs/resources/slb_ftp_proxy.md | 16 +- docs/resources/slb_generic_proxy.md | 16 +- docs/resources/slb_health_gateway.md | 16 +- docs/resources/slb_health_stat.md | 16 +- docs/resources/slb_http2.md | 16 +- docs/resources/slb_http_proxy.md | 17 +- docs/resources/slb_hw_compress.md | 16 +- docs/resources/slb_icap.md | 16 +- docs/resources/slb_icap_http.md | 16 +- docs/resources/slb_imapproxy.md | 16 +- docs/resources/slb_l4.md | 16 +- docs/resources/slb_l7session.md | 16 +- docs/resources/slb_mlb.md | 16 +- docs/resources/slb_mssql.md | 16 +- docs/resources/slb_mysql.md | 16 +- docs/resources/slb_passthrough.md | 16 +- docs/resources/slb_perf.md | 16 +- docs/resources/slb_persist.md | 16 +- docs/resources/slb_player_id_global.md | 22 +- docs/resources/slb_pop3_proxy.md | 16 +- docs/resources/slb_proxy.md | 16 +- docs/resources/slb_rate_limit_log.md | 16 +- docs/resources/slb_rc_cache_global.md | 16 +- docs/resources/slb_resource_usage.md | 31 + docs/resources/slb_server_port.md | 41 +- docs/resources/slb_sip.md | 16 +- docs/resources/slb_smpp.md | 16 +- docs/resources/slb_smtp.md | 16 +- docs/resources/slb_spdy_proxy.md | 16 +- docs/resources/slb_sport_rate_limit.md | 16 +- docs/resources/slb_ssl_cert_revoke.md | 16 +- docs/resources/slb_ssl_expire_check.md | 23 +- docs/resources/slb_ssl_forward_proxy.md | 16 +- docs/resources/slb_svm_source_nat.md | 14 +- docs/resources/slb_switch.md | 16 +- docs/resources/slb_template_cache.md | 39 +- docs/resources/slb_template_cipher.md | 30 +- docs/resources/slb_template_client_ssh.md | 18 +- docs/resources/slb_template_client_ssl.md | 413 +- .../slb_template_connection_reuse.md | 20 +- docs/resources/slb_template_csv.md | 40 - docs/resources/slb_template_dblb.md | 16 +- docs/resources/slb_template_diameter.md | 43 +- docs/resources/slb_template_dns.md | 186 +- docs/resources/slb_template_dns_class_list.md | 28 +- docs/resources/slb_template_dns_logging.md | 19 +- .../resources/slb_template_dynamic_service.md | 19 +- .../slb_template_external_service.md | 23 +- docs/resources/slb_template_fix.md | 22 +- docs/resources/slb_template_ftp.md | 18 +- docs/resources/slb_template_http.md | 99 +- docs/resources/slb_template_http_policy.md | 30 +- docs/resources/slb_template_imap_pop3.md | 17 +- docs/resources/slb_template_logging.md | 21 +- docs/resources/slb_template_monitor.md | 23 +- docs/resources/slb_template_mqtt.md | 19 +- docs/resources/slb_template_persist_cookie.md | 27 + .../slb_template_persist_source_ip.md | 24 + docs/resources/slb_template_policy.md | 110 +- docs/resources/slb_template_port.md | 49 + docs/resources/slb_template_reqmod_icap.md | 23 + docs/resources/slb_template_respmod_icap.md | 22 + docs/resources/slb_template_server.md | 40 + docs/resources/slb_template_server_ssh.md | 16 +- docs/resources/slb_template_server_ssl.md | 52 +- docs/resources/slb_template_sip.md | 71 +- docs/resources/slb_template_smpp.md | 20 +- docs/resources/slb_template_smtp.md | 32 +- docs/resources/slb_template_snmp.md | 44 - docs/resources/slb_template_ssli.md | 16 +- docs/resources/slb_template_tcp.md | 30 + docs/resources/slb_template_tcp_proxy.md | 56 + docs/resources/slb_template_udp.md | 25 +- docs/resources/slb_template_virtual_port.md | 37 + docs/resources/slb_template_virtual_server.md | 31 + .../resources/slb_transparent_acl_template.md | 14 +- .../resources/slb_transparent_tcp_template.md | 14 +- docs/resources/slb_virtual_server_port.md | 77 + docs/resources/snmp_server_contact.md | 14 +- docs/resources/snmp_server_disable_traps.md | 30 +- docs/resources/snmp_server_enable_traps.md | 89 +- .../snmp_server_enable_traps_gslb.md | 19 +- .../resources/snmp_server_enable_traps_lsn.md | 18 +- .../snmp_server_enable_traps_network.md | 13 +- .../snmp_server_enable_traps_routing_bgp.md | 16 +- .../snmp_server_enable_traps_routing_isis.md | 29 + .../snmp_server_enable_traps_routing_ospf.md | 28 + .../resources/snmp_server_enable_traps_slb.md | 40 + .../snmp_server_enable_traps_slb_change.md | 24 +- .../snmp_server_enable_traps_snmp.md | 17 +- .../resources/snmp_server_enable_traps_ssl.md | 13 +- .../snmp_server_enable_traps_system.md | 31 + .../resources/snmp_server_enable_traps_vcs.md | 13 +- .../snmp_server_enable_traps_vrrp_a.md | 17 +- docs/resources/snmp_server_engine_id.md | 14 +- docs/resources/snmp_server_group.md | 16 +- docs/resources/snmp_server_host_host_name.md | 17 +- docs/resources/snmp_server_host_ipv4_host.md | 17 +- docs/resources/snmp_server_host_ipv6_host.md | 17 +- docs/resources/snmp_server_location.md | 14 +- .../resources/snmp_server_management_index.md | 14 +- .../snmp_server_slb_data_cache_timeout.md | 14 +- docs/resources/snmp_server_snmpv1_v2c_user.md | 39 +- .../snmp_server_snmpv1_v2c_user_oid.md | 28 +- docs/resources/snmp_server_snmpv3_user.md | 22 +- docs/resources/snmp_server_user.md | 20 +- docs/resources/snmp_server_view.md | 16 +- docs/resources/system.md | 1102 +-- docs/resources/system_ve_mac_scheme.md | 14 +- docs/resources/terminal.md | 29 +- docs/resources/timezone.md | 17 +- docs/resources/virtual_server.md | 87 +- docs/resources/vrrp_a_vrid.md | 58 +- docs/resources/vrrp_common.md | 16 +- docs/resources/vrrp_peer_group.md | 21 +- docs/resources/vrrp_session_sync.md | 14 +- docs/resources/web_category.md | 147 +- docs/resources/web_category_category_list.md | 97 + docs/resources/web_category_proxy_server.md | 21 +- .../web_category_reputation_scope.md | 35 +- docs/resources/web_category_statistics.md | 16 +- docs/resources/write_memory.md | 14 +- .../snmp_server_enable_traps/resource.tf | 23 - .../thunder_access_list_extended/resource.tf | 30 + .../thunder_access_list_standard/resource.tf | 25 + .../thunder_admin_password/resource.tf | 11 + examples/resources/thunder_banner/resource.tf | 18 + examples/resources/thunder_bgp/resource.tf | 14 + .../thunder_change_password/resource.tf | 8 - .../resources/thunder_class_list/resource.tf | 58 + .../thunder_clock_show_oper/resource.tf | 12 + .../resource.tf | 10 + .../resource.tf | 24 + .../resource.tf | 11 + .../resource.tf | 28 + .../resource.tf | 10 + .../resource.tf | 28 + .../thunder_configure_sync/resource.tf | 17 + .../resources/thunder_ethernet/resource.tf | 24 + .../resources/thunder_file_aflex/resource.tf | 19 + .../thunder_file_bw_list/resource.tf | 38 +- .../thunder_file_ca_cert/resource.tf | 20 + .../thunder_file_class_list/resource.tf | 148 +- .../resource.tf | 146 +- .../resources/thunder_file_csr/resource.tf | 19 + .../thunder_file_geo_location/resource.tf | 14 +- .../thunder_file_ssl_cert/resource.tf | 20 + .../thunder_file_ssl_cert_key/resource.tf | 18 + .../thunder_file_ssl_crl/resource.tf | 17 + .../thunder_file_ssl_key/resource.tf | 18 + .../thunder_fw_active_rule_set/resource.tf | 11 + .../resources/thunder_fw_alg_dns/resource.tf | 9 + .../resources/thunder_fw_alg_ftp/resource.tf | 12 + .../resources/thunder_fw_alg_icmp/resource.tf | 9 + .../resources/thunder_fw_alg_pptp/resource.tf | 12 + .../resources/thunder_fw_alg_rtsp/resource.tf | 12 + .../resources/thunder_fw_alg_sip/resource.tf | 12 + .../resources/thunder_fw_alg_tftp/resource.tf | 12 + examples/resources/thunder_fw_app/resource.tf | 11 + .../thunder_fw_apply_changes/resource.tf | 9 + .../resource.tf | 9 + .../thunder_fw_full_cone_session/resource.tf | 9 + .../resources/thunder_fw_global/resource.tf | 11 + examples/resources/thunder_fw_gtp/resource.tf | 12 + .../resource.tf | 9 + .../resources/thunder_fw_gtp_v0/resource.tf | 9 + .../thunder_fw_helper_sessions/resource.tf | 11 + .../thunder_fw_limit_entry/resource.tf | 9 + .../thunder_fw_local_log/resource.tf | 9 + .../resources/thunder_fw_logging/resource.tf | 17 + .../thunder_fw_radius_server/resource.tf | 21 + .../thunder_fw_resource_usage/resource.tf | 9 + .../resources/thunder_fw_server/resource.tf | 26 + .../thunder_fw_service_group/resource.tf | 16 + .../resources/thunder_fw_status/resource.tf | 9 + .../thunder_fw_system_status/resource.tf | 9 + .../thunder_fw_tap_monitor/resource.tf | 12 + .../thunder_fw_tcp_mss_clamp/resource.tf | 10 + .../thunder_fw_tcp_reset_on_error/resource.tf | 9 + .../resource.tf | 9 + .../thunder_fw_tcp_window_check/resource.tf | 12 + .../thunder_fw_template_logging/resource.tf | 40 + .../thunder_fw_top_k_rules/resource.tf | 9 + .../resources/thunder_fw_urpf/resource.tf | 9 + .../resources/thunder_fw_vrid/resource.tf | 9 + examples/resources/thunder_glm/resource.tf | 24 + .../resources/thunder_glm_send/resource.tf | 10 + .../resources/thunder_gslb_group/resource.tf | 38 +- .../resources/thunder_gslb_policy/resource.tf | 170 +- .../thunder_gslb_protocol/resource.tf | 46 +- .../thunder_gslb_service_ip/resource.tf | 34 +- .../resources/thunder_gslb_site/resource.tf | 106 +- .../thunder_gslb_template_csv/resource.tf | 12 + .../thunder_gslb_template_snmp/resource.tf | 26 + .../resources/thunder_gslb_zone/resource.tf | 116 +- .../resource.tf | 20 + .../thunder_health_monitor/resource.tf | 52 +- .../resources/thunder_hostname/resource.tf | 9 + .../thunder_interface_Lif_ip/resource.tf | 104 + .../resource.tf | 11 + .../thunder_interface_ethernet/resource.tf | 341 + .../resource.tf | 23 + .../thunder_interface_ethernet_ip/resource.tf | 113 + .../resource.tf | 109 + .../resource.tf | 33 + .../resource.tf | 16 + .../thunder_interface_lif/resource.tf | 54 +- .../thunder_interface_loopback/resource.tf | 42 +- .../thunder_interface_management/resource.tf | 65 + .../thunder_interface_ve/resource.tf | 54 +- .../thunder_interface_ve_bfd/resource.tf | 21 + .../thunder_interface_ve_ip/resource.tf | 104 + .../thunder_interface_ve_ipv6/resource.tf | 107 + .../thunder_ip_access_list/resource.tf | 20 + .../resources/thunder_ip_address/resource.tf | 10 + .../thunder_ip_dns_primary/resource.tf | 9 + .../thunder_ip_dns_secondary/resource.tf | 9 + .../thunder_ip_dns_suffix/resource.tf | 9 + .../resources/thunder_ip_frag/resource.tf | 19 + .../resources/thunder_ip_icmp/resource.tf | 10 + .../thunder_ip_nat_alg_pptp/resource.tf | 12 + .../thunder_ip_nat_global/resource.tf | 9 + .../resources/thunder_ip_nat_icmp/resource.tf | 10 + .../resources/thunder_ip_nat_pool/resource.tf | 14 + .../thunder_ip_prefix_list/resource.tf | 18 + .../resources/thunder_ip_reroute/resource.tf | 17 + .../thunder_ip_route_rib/resource.tf | 30 + .../thunder_ip_route_static_bfd/resource.tf | 10 + examples/resources/thunder_ip_tcp/resource.tf | 11 + .../resources/thunder_ipv6_frag/resource.tf | 12 + .../resources/thunder_ipv6_icmpv6/resource.tf | 10 + .../thunder_ipv6_nat_icmpv6/resource.tf | 9 + .../thunder_ipv6_nat_pool/resource.tf | 15 + .../thunder_ipv6_route_rib/resource.tf | 15 + .../resource.tf | 13 + .../resource.tf | 13 + .../resource.tf | 13 + .../resource.tf | 13 + .../thunder_logging_auditlog/resource.tf | 23 + .../thunder_logging_console/resource.tf | 9 + .../thunder_logging_host_ipv4addr/resource.tf | 12 + .../thunder_logging_host_ipv6addr/resource.tf | 12 + .../resource.tf | 9 + .../thunder_ntp_auth_key/resource.tf | 12 + .../thunder_ntp_server_hostname/resource.tf | 11 + .../thunder_ntp_trusted_key/resource.tf | 9 + .../resource.tf | 17 + .../thunder_overlay_tunnel_vtep/resource.tf | 21 + .../resources/thunder_partition/resource.tf | 12 + .../thunder_plat_cpu_packet_oper/resource.tf | 12 + examples/resources/thunder_reboot/resource.tf | 13 + .../resources/thunder_rib_route/resource.tf | 31 + .../resources/thunder_route_map/resource.tf | 168 + .../resources/thunder_router_bgp/resource.tf | 58 +- .../resource.tf | 182 + .../resource.tf | 12 + .../resource.tf | 36 + .../resource.tf | 39 + .../resource.tf | 39 + .../resource.tf | 14 + .../resource.tf | 13 + .../resource.tf | 15 + .../resource.tf | 10 + .../resource.tf | 69 + .../resource.tf | 13 + .../resource.tf | 66 + .../resource.tf | 67 + .../resource.tf | 61 + .../resource.tf | 23 + .../resource.tf | 12 + .../resource.tf | 32 +- .../resource.tf | 10 + .../resource.tf | 63 + .../resources/thunder_router_isis/resource.tf | 64 +- .../resources/thunder_router_ospf/resource.tf | 198 + .../thunder_router_ospf_area/resource.tf | 45 + .../resource.tf | 14 + .../resource.tf | 45 + .../resources/thunder_rule_set/resource.tf | 26 + examples/resources/thunder_server/resource.tf | 79 + .../thunder_service_group/resource.tf | 101 + .../thunder_service_partition/resource.tf | 11 + .../thunder_sessions_oper/resource.tf | 11 + .../resources/thunder_slb_aflow/resource.tf | 12 + .../resources/thunder_slb_common/resource.tf | 104 + .../resource.tf | 14 + .../resource.tf | 16 + .../thunder_slb_connection_reuse/resource.tf | 12 + .../thunder_slb_crl_srcip/resource.tf | 12 + .../resources/thunder_slb_dns/resource.tf | 12 + .../thunder_slb_dns_cache/resource.tf | 12 + .../resource.tf | 12 + .../thunder_slb_fast_http_proxy/resource.tf | 13 + .../resources/thunder_slb_fix/resource.tf | 12 + .../resources/thunder_slb_ftp_ctl/resource.tf | 12 + .../thunder_slb_ftp_data/resource.tf | 12 + .../thunder_slb_ftp_proxy/resource.tf | 12 + .../thunder_slb_generic_proxy/resource.tf | 11 + .../thunder_slb_health_gateway/resource.tf | 11 + .../thunder_slb_health_stat/resource.tf | 12 + .../resources/thunder_slb_http2/resource.tf | 11 + .../thunder_slb_http_proxy/resource.tf | 12 + .../thunder_slb_http_proxy_oper/resource.tf | 12 + .../thunder_slb_hw_compress/resource.tf | 12 + .../resources/thunder_slb_icap/resource.tf | 12 + .../thunder_slb_icap_http/resource.tf | 12 + .../thunder_slb_imapproxy/resource.tf | 12 + examples/resources/thunder_slb_l4/resource.tf | 12 + .../thunder_slb_l7session/resource.tf | 12 + .../resources/thunder_slb_mlb/resource.tf | 12 + .../resources/thunder_slb_mssql/resource.tf | 12 + .../resources/thunder_slb_mysql/resource.tf | 12 + .../thunder_slb_passthrough/resource.tf | 12 + .../resources/thunder_slb_perf/resource.tf | 12 + .../resources/thunder_slb_persist/resource.tf | 12 + .../thunder_slb_player_id_global/resource.tf | 18 + .../thunder_slb_pop3_proxy/resource.tf | 12 + .../resources/thunder_slb_proxy/resource.tf | 12 + .../thunder_slb_rate_limit_log/resource.tf | 12 + .../thunder_slb_rc_cache_global/resource.tf | 12 + .../thunder_slb_resource_usage/resource.tf | 28 + .../thunder_slb_server_oper/resource.tf | 13 + .../thunder_slb_server_port/resource.tf | 36 + .../resources/thunder_slb_sip/resource.tf | 12 + .../resources/thunder_slb_smpp/resource.tf | 12 + .../resources/thunder_slb_smtp/resource.tf | 12 + .../thunder_slb_spdy_proxy/resource.tf | 12 + .../thunder_slb_sport_rate_limit/resource.tf | 12 + .../thunder_slb_ssl_cert_revoke/resource.tf | 12 + .../thunder_slb_ssl_expire_check/resource.tf | 18 + .../thunder_slb_ssl_forward_proxy/resource.tf | 12 + .../thunder_slb_ssl_stats_oper/resource.tf | 12 + .../thunder_slb_svm_source_nat/resource.tf | 10 + .../resources/thunder_slb_switch/resource.tf | 12 + .../thunder_slb_template_cache/resource.tf | 34 + .../thunder_slb_template_cipher/resource.tf | 30 +- .../resource.tf | 13 + .../resource.tf | 408 ++ .../resource.tf | 15 + .../thunder_slb_template_dblb/resource.tf | 11 + .../thunder_slb_template_diameter/resource.tf | 38 + .../thunder_slb_template_dns/resource.tf | 92 +- .../resource.tf | 23 + .../resource.tf | 14 + .../resource.tf | 14 + .../resource.tf | 18 + .../thunder_slb_template_fix/resource.tf | 17 + .../thunder_slb_template_ftp/resource.tf | 13 + .../thunder_slb_template_http/resource.tf | 94 + .../resource.tf | 25 + .../resource.tf | 12 + .../thunder_slb_template_logging/resource.tf | 16 + .../thunder_slb_template_monitor/resource.tf | 18 + .../thunder_slb_template_mqtt/resource.tf | 14 + .../resource.tf | 25 + .../resource.tf | 21 + .../thunder_slb_template_policy/resource.tf | 105 + .../thunder_slb_template_port/resource.tf | 46 + .../resource.tf | 20 + .../resource.tf | 19 + .../thunder_slb_template_server/resource.tf | 37 + .../resource.tf | 11 + .../resource.tf | 47 + .../thunder_slb_template_sip/resource.tf | 66 + .../thunder_slb_template_smpp/resource.tf | 15 + .../thunder_slb_template_smtp/resource.tf | 27 + .../thunder_slb_template_ssli/resource.tf | 11 + .../thunder_slb_template_tcp/resource.tf | 27 + .../resource.tf | 53 + .../thunder_slb_template_udp/resource.tf | 20 + .../resource.tf | 34 + .../resource.tf | 28 + .../resource.tf | 9 + .../resource.tf | 9 + .../resource.tf | 74 + .../thunder_snmp_server_contact/resource.tf | 9 + .../resource.tf | 30 +- .../resource.tf | 84 + .../resource.tf | 16 + .../resource.tf | 14 + .../resource.tf | 12 + .../resource.tf | 12 + .../resource.tf | 28 + .../resource.tf | 27 + .../resource.tf | 39 + .../resource.tf | 20 + .../resource.tf | 13 + .../resource.tf | 10 + .../resource.tf | 30 + .../resource.tf | 11 + .../resource.tf | 14 + .../thunder_snmp_server_engine_id/resource.tf | 9 + .../thunder_snmp_server_group/resource.tf | 11 + .../resource.tf | 12 + .../resource.tf | 12 + .../resource.tf | 12 + .../thunder_snmp_server_location/resource.tf | 9 + .../resource.tf | 9 + .../resource.tf | 9 + .../resource.tf | 34 + .../resource.tf | 23 + .../resource.tf | 17 + .../thunder_snmp_server_user/resource.tf | 15 + .../thunder_snmp_server_view/resource.tf | 11 + .../resources/thunder_syslog_oper/resource.tf | 12 + examples/resources/thunder_system/resource.tf | 19 +- .../resource.tf | 11 + .../resource.tf | 12 + .../resource.tf | 12 + .../thunder_system_hardware_oper/resource.tf | 11 + .../thunder_system_memory_oper/resource.tf | 11 + .../resource.tf | 11 + .../thunder_system_ve_mac_scheme/resource.tf | 9 + .../resources/thunder_terminal/resource.tf | 25 + .../resource.tf | 26 - .../resources/thunder_timezone/resource.tf | 12 + .../thunder_virtual_server/resource.tf | 82 + .../resources/thunder_vrrp_a_vrid/resource.tf | 58 +- .../resources/thunder_vrrp_common/resource.tf | 16 +- .../thunder_vrrp_peer_group/resource.tf | 16 + .../thunder_vrrp_session_sync/resource.tf | 9 + .../thunder_web_category/resource.tf | 142 + .../resource.tf | 94 + .../resource.tf | 16 + .../resource.tf | 30 + .../resource.tf | 11 + .../thunder_write_memory/resource.tf | 10 + go_thunder/thunder/SlbTemplateCSV.go | 172 - go_thunder/thunder/SlbTemplateSNMP.go | 180 - thunder/axapi/endpoint/class_list.go | 24 +- thunder/axapi/endpoint/clock_show_oper.go | 46 + .../cloud_services_cloud_provider_aws_log.go | 69 + ...oud_services_cloud_provider_aws_metrics.go | 83 + ...cloud_services_cloud_provider_azure_log.go | 72 + ...d_services_cloud_provider_azure_metrics.go | 88 + ...loud_services_cloud_provider_vmware_log.go | 69 + ..._services_cloud_provider_vmware_metrics.go | 88 + thunder/axapi/endpoint/delete_bw_list.go | 2 +- thunder/axapi/endpoint/gslb_template_csv.go | 78 + thunder/axapi/endpoint/gslb_template_snmp.go | 85 + thunder/axapi/endpoint/health_monitor.go | 2 +- thunder/axapi/endpoint/import.go | 2 +- .../interface_available_eth_list_oper.go | 50 + thunder/axapi/endpoint/interface_lif.go | 2 +- thunder/axapi/endpoint/interface_loopback.go | 2 +- thunder/axapi/endpoint/interface_ve.go | 2 +- thunder/axapi/endpoint/ip_nat_pool.go | 2 +- thunder/axapi/endpoint/ip_route_rib.go | 98 + thunder/axapi/endpoint/pki_create_oper.go | 2 +- thunder/axapi/endpoint/pki_delete.go | 2 +- .../axapi/endpoint/plat_cpu_packet_oper.go | 48 + thunder/axapi/endpoint/router_bgp.go | 242 +- .../endpoint/router_bgp_network_ip_cidr.go | 4 +- thunder/axapi/endpoint/router_isis.go | 14 +- thunder/axapi/endpoint/router_ospf_area.go | 2 +- thunder/axapi/endpoint/service_partition.go | 72 + thunder/axapi/endpoint/sessions_oper.go | 183 + thunder/axapi/endpoint/slb_common.go | 2 +- .../endpoint/slb_common_buffer_threshold.go | 14 +- thunder/axapi/endpoint/slb_http_proxy_oper.go | 381 ++ thunder/axapi/endpoint/slb_server_oper.go | 167 + thunder/axapi/endpoint/slb_server_port.go | 4 +- thunder/axapi/endpoint/slb_ssl_stats_oper.go | 121 + thunder/axapi/endpoint/slb_template_cipher.go | 2 +- thunder/axapi/endpoint/slb_template_dns.go | 163 +- .../axapi/endpoint/slb_virtual_server_port.go | 2 +- .../endpoint/snmp_server_disable_traps.go | 2 +- .../endpoint/snmp_server_enable_traps.go | 2 +- .../endpoint/snmp_server_host_host_name.go | 2 +- .../snmp_server_host_host_name_l3v.go | 4 +- .../endpoint/snmp_server_host_ipv4_host.go | 2 +- .../snmp_server_host_ipv4_host_l3v.go | 4 +- .../endpoint/snmp_server_host_ipv6_host.go | 4 +- thunder/axapi/endpoint/syslog_oper.go | 48 + thunder/axapi/endpoint/system.go | 441 +- .../endpoint/system_app_performance_stats.go | 55 + .../endpoint/system_cpu_ctrl_cpu_oper.go | 49 +- .../endpoint/system_cpu_data_cpu_oper.go | 49 +- .../axapi/endpoint/system_hardware_oper.go | 107 + thunder/axapi/endpoint/system_memory_oper.go | 89 + .../axapi/endpoint/system_throughput_stats.go | 42 + .../axapi/endpoint/system_ve_mac_scheme.go | 2 +- thunder/axapi/endpoint/vrrp_a_common.go | 2 +- thunder/axapi/endpoint/vrrp_a_vrid.go | 2 +- thunder/axapi/file/ssl_cert_key.go | 18 +- thunder/axapi/json.go | 18 +- thunder/endpoint_interface_ethernet_func.go | 332 +- thunder/endpoint_interface_ethernet_struct.go | 743 +- thunder/endpoint_ip_route_rib.go | 154 - thunder/endpoint_ip_route_static_bfd.go | 212 +- thunder/endpoint_ipv6_nat_pool.go | 227 +- thunder/endpoint_ipv6_route_rib.go | 231 +- ...endpoint_ipv6_route_static_bfd_bfd_ipv6.go | 213 +- ...endpoint_ipv6_route_static_bfd_ethernet.go | 217 +- .../endpoint_ipv6_route_static_bfd_trunk.go | 215 +- thunder/endpoint_ipv6_route_static_bfd_ve.go | 215 +- thunder/endpoint_logging_auditlog.go | 215 +- thunder/endpoint_logging_console.go | 205 +- thunder/endpoint_logging_host_ipv4addr.go | 213 +- thunder/endpoint_logging_host_ipv6addr.go | 213 +- thunder/endpoint_logging_host_partition.go | 207 +- thunder/endpoint_slb_template_dns_logging.go | 217 +- thunder/provider.go | 29 +- thunder/resource_class_list.go | 258 +- thunder/resource_clock_show_oper.go | 94 + ...e_cloud_services_cloud_provider_aws_log.go | 100 + ...oud_services_cloud_provider_aws_metrics.go | 156 + ...cloud_services_cloud_provider_azure_log.go | 109 + ...d_services_cloud_provider_azure_metrics.go | 173 + ...loud_services_cloud_provider_vmware_log.go | 100 + ..._services_cloud_provider_vmware_metrics.go | 173 + thunder/resource_file_bw_list.go | 2 +- thunder/resource_file_ca_cert.go | 3 +- thunder/resource_file_class_list.go | 2 +- thunder/resource_file_class_list_convert.go | 2 +- thunder/resource_file_csr.go | 2 +- thunder/resource_file_ssl_cert.go | 2 +- thunder/resource_file_ssl_cert_key.go | 2 +- thunder/resource_file_ssl_crl.go | 2 +- thunder/resource_file_ssl_key.go | 2 +- thunder/resource_gslb_template_csv.go | 149 + thunder/resource_gslb_template_snmp.go | 183 + ...ource_interface_available_eth_list_oper.go | 119 + thunder/resource_interface_lif.go | 8 +- thunder/resource_interface_ve.go | 8 +- thunder/resource_logging_host_ipv4addr.go | 186 +- thunder/resource_logging_host_ipv6addr.go | 188 +- thunder/resource_plat_cpu_packet_oper.go | 114 + thunder/resource_router_bgp.go | 1502 +++-- thunder/resource_router_isis.go | 339 +- thunder/resource_router_ospf_area.go | 2 +- thunder/resource_service_partition.go | 112 + thunder/resource_sessions_oper.go | 855 +++ thunder/resource_slb_common.go | 2 +- .../resource_slb_common_buffer_threshold.go | 2 +- thunder/resource_slb_http_proxy_oper.go | 1781 +++++ thunder/resource_slb_server_oper.go | 772 +++ thunder/resource_slb_ssl_stats_oper.go | 481 ++ thunder/resource_slb_template_dns.go | 348 +- thunder/resource_slb_virtual_server_port.go | 16 +- thunder/resource_snmp_server_disable_traps.go | 3 +- .../resource_snmp_server_host_host_name.go | 14 +- .../resource_snmp_server_host_ipv4_host.go | 8 +- .../resource_snmp_server_host_ipv6_host.go | 8 +- thunder/resource_syslog_oper.go | 113 + thunder/resource_system.go | 3603 +++++----- .../resource_system_app_performance_stats.go | 130 + thunder/resource_system_cpu_ctrl_cpu_oper.go | 79 +- thunder/resource_system_cpu_data_cpu_oper.go | 78 +- thunder/resource_system_hardware_oper.go | 434 ++ thunder/resource_system_memory_oper.go | 348 + thunder/resource_system_throughput_stats.go | 78 + ...ource_thunder_access_list_extended_test.go | 2 +- ...ource_thunder_access_list_standard_test.go | 2 +- thunder/resource_thunder_banner_test.go | 2 +- thunder/resource_thunder_bgp_test.go | 2 +- thunder/resource_thunder_ethernet.go | 2 +- thunder/resource_thunder_file_aflex.go | 2 +- .../resource_thunder_file_ssl_cert_test.go | 2 +- thunder/resource_thunder_fw_alg_dns_test.go | 2 +- thunder/resource_thunder_fw_alg_ftp_test.go | 2 +- thunder/resource_thunder_fw_alg_icmp_test.go | 2 +- thunder/resource_thunder_fw_alg_pptp_test.go | 2 +- thunder/resource_thunder_fw_alg_rtsp_test.go | 2 +- thunder/resource_thunder_fw_alg_sip_test.go | 2 +- thunder/resource_thunder_fw_alg_tftp_test.go | 2 +- thunder/resource_thunder_fw_app_test.go | 2 +- thunder/resource_thunder_fw_global_test.go | 2 +- ...ce_thunder_fw_gtp_in_gtp_filtering_test.go | 2 +- thunder/resource_thunder_fw_gtp_test.go | 2 +- thunder/resource_thunder_fw_gtp_v0_test.go | 2 +- ...esource_thunder_fw_helper_sessions_test.go | 2 +- .../resource_thunder_fw_radius_server_test.go | 2 +- thunder/resource_thunder_fw_server_test.go | 2 +- .../resource_thunder_fw_service_group_test.go | 2 +- .../resource_thunder_fw_tap_monitor_test.go | 2 +- .../resource_thunder_fw_tcp_mss_clamp_test.go | 2 +- ...thunder_fw_tcp_rst_close_immediate_test.go | 2 +- ...source_thunder_fw_tcp_window_check_test.go | 2 +- ...source_thunder_fw_template_logging_test.go | 2 +- thunder/resource_thunder_fw_urpf_test.go | 2 +- thunder/resource_thunder_glm_test.go | 2 +- ...thunder_harmony_controller_profile_test.go | 2 +- .../resource_thunder_health_monitor_test.go | 2 +- thunder/resource_thunder_import_test.go | 2 +- .../resource_thunder_interface_ethernet.go | 5966 ++++++++--------- ...rce_thunder_interface_ethernet_bfd_test.go | 2 +- ...ce_thunder_interface_ethernet_lldp_test.go | 2 +- .../resource_thunder_interface_lif_ip_test.go | 2 +- .../resource_thunder_interface_lif_test.go | 2 +- ...ource_thunder_interface_management_test.go | 2 +- .../resource_thunder_interface_ve_bfd_test.go | 2 +- .../resource_thunder_ip_dns_primary_test.go | 2 +- .../resource_thunder_ip_dns_secondary_test.go | 2 +- .../resource_thunder_ip_dns_suffix_test.go | 2 +- thunder/resource_thunder_ip_frag_test.go | 2 +- thunder/resource_thunder_ip_icmp_test.go | 2 +- .../resource_thunder_ip_nat_alg_pptp_test.go | 2 +- .../resource_thunder_ip_nat_global_test.go | 2 +- thunder/resource_thunder_ip_nat_icmp_test.go | 2 +- .../resource_thunder_ip_prefix_list_test.go | 2 +- thunder/resource_thunder_ip_reroute_test.go | 2 +- thunder/resource_thunder_ip_route_rib.go | 406 +- .../resource_thunder_ip_route_static_bfd.go | 184 +- ...source_thunder_ip_route_static_bfd_test.go | 2 +- thunder/resource_thunder_ip_tcp_test.go | 2 +- thunder/resource_thunder_ipv6_frag_test.go | 2 +- thunder/resource_thunder_ipv6_icmpv6_test.go | 2 +- .../resource_thunder_ipv6_nat_icmpv6_test.go | 2 +- thunder/resource_thunder_ipv6_nat_pool.go | 2 +- thunder/resource_thunder_ipv6_route_rib.go | 308 +- ..._thunder_ipv6_route_static_bfd_bfd_ipv6.go | 188 +- ..._thunder_ipv6_route_static_bfd_ethernet.go | 188 +- ...rce_thunder_ipv6_route_static_bfd_trunk.go | 188 +- ...source_thunder_ipv6_route_static_bfd_ve.go | 188 +- thunder/resource_thunder_logging_auditlog.go | 198 +- thunder/resource_thunder_logging_console.go | 148 +- ...resource_thunder_logging_host_partition.go | 158 +- thunder/resource_thunder_ntp_auth_key_test.go | 2 +- ...source_thunder_ntp_server_hostname_test.go | 2 +- .../resource_thunder_ntp_trusted_key_test.go | 2 +- ...rce_thunder_overlay_tunnel_options_test.go | 2 +- ...source_thunder_overlay_tunnel_vtep_test.go | 2 +- thunder/resource_thunder_partition.go | 4 +- thunder/resource_thunder_partition_test.go | 2 +- thunder/resource_thunder_rib_route.go | 2 +- thunder/resource_thunder_rib_route_test.go | 4 +- thunder/resource_thunder_route_map_test.go | 2 +- ...family_ipv6_neighbor_ipv4_neighbor_test.go | 2 +- ...family_ipv6_neighbor_ipv6_neighbor_test.go | 2 +- ..._ipv6_neighbor_peer_group_neighbor_test.go | 2 +- ...s_family_ipv6_network_ipv6_network_test.go | 2 +- ...amily_ipv6_network_synchronization_test.go | 2 +- ...er_bgp_address_family_ipv6_network_test.go | 2 +- ...p_address_family_ipv6_redistribute_test.go | 2 +- ...der_router_bgp_address_family_ipv6_test.go | 2 +- ..._thunder_router_bgp_address_family_test.go | 2 +- ..._router_bgp_neighbor_ipv4_neighbor_test.go | 2 +- ..._router_bgp_neighbor_ipv6_neighbor_test.go | 2 +- ...r_bgp_neighbor_peer_group_neighbor_test.go | 2 +- ...source_thunder_router_bgp_neighbor_test.go | 2 +- ...thunder_router_bgp_network_ip_cidr_test.go | 2 +- ...router_bgp_network_synchronization_test.go | 2 +- ...esource_thunder_router_bgp_network_test.go | 2 +- ...ce_thunder_router_bgp_redistribute_test.go | 2 +- thunder/resource_thunder_router_bgp_test.go | 2 +- ...er_router_ospf_default_information_test.go | 2 +- ...e_thunder_router_ospf_redistribute_test.go | 2 +- thunder/resource_thunder_router_ospf_test.go | 2 +- thunder/resource_thunder_server.go | 37 +- thunder/resource_thunder_server_test.go | 4 +- thunder/resource_thunder_service_group.go | 4 +- .../resource_thunder_service_group_test.go | 4 +- thunder/resource_thunder_slb_aflow_test.go | 2 +- ..._slb_common_conn_rate_limit_src_ip_test.go | 2 +- thunder/resource_thunder_slb_common_test.go | 2 +- ...ource_thunder_slb_connection_reuse_test.go | 2 +- .../resource_thunder_slb_crl_srcip_test.go | 2 +- .../resource_thunder_slb_dns_cache_test.go | 2 +- ...der_slb_dns_response_rate_limiting_test.go | 2 +- thunder/resource_thunder_slb_dns_test.go | 2 +- ...source_thunder_slb_fast_http_proxy_test.go | 2 +- thunder/resource_thunder_slb_fix_test.go | 2 +- thunder/resource_thunder_slb_ftp_ctl_test.go | 2 +- thunder/resource_thunder_slb_ftp_data_test.go | 2 +- .../resource_thunder_slb_ftp_proxy_test.go | 2 +- ...resource_thunder_slb_generic_proxy_test.go | 2 +- ...esource_thunder_slb_health_gateway_test.go | 2 +- .../resource_thunder_slb_health_stat_test.go | 2 +- thunder/resource_thunder_slb_http2_test.go | 2 +- .../resource_thunder_slb_http_proxy_test.go | 2 +- .../resource_thunder_slb_hw_compress_test.go | 2 +- .../resource_thunder_slb_icap_http_test.go | 2 +- thunder/resource_thunder_slb_icap_test.go | 2 +- .../resource_thunder_slb_imapproxy_test.go | 2 +- thunder/resource_thunder_slb_l4_test.go | 2 +- .../resource_thunder_slb_l7session_test.go | 2 +- thunder/resource_thunder_slb_mlb_test.go | 2 +- thunder/resource_thunder_slb_mssql_test.go | 2 +- thunder/resource_thunder_slb_mysql_test.go | 2 +- .../resource_thunder_slb_passthrough_test.go | 2 +- thunder/resource_thunder_slb_perf_test.go | 2 +- thunder/resource_thunder_slb_persist_test.go | 2 +- ...ource_thunder_slb_player_id_global_test.go | 2 +- .../resource_thunder_slb_pop3_proxy_test.go | 2 +- thunder/resource_thunder_slb_proxy_test.go | 2 +- ...esource_thunder_slb_rate_limit_log_test.go | 2 +- ...source_thunder_slb_rc_cache_global_test.go | 2 +- ...esource_thunder_slb_resource_usage_test.go | 2 +- thunder/resource_thunder_slb_sip_test.go | 2 +- thunder/resource_thunder_slb_smpp_test.go | 2 +- thunder/resource_thunder_slb_smtp_test.go | 2 +- .../resource_thunder_slb_spdy_proxy_test.go | 2 +- ...ource_thunder_slb_sport_rate_limit_test.go | 2 +- ...source_thunder_slb_ssl_cert_revoke_test.go | 2 +- ...ource_thunder_slb_ssl_expire_check_test.go | 2 +- ...urce_thunder_slb_ssl_forward_proxy_test.go | 2 +- ...esource_thunder_slb_svm_source_nat_test.go | 2 +- thunder/resource_thunder_slb_switch_test.go | 2 +- ...esource_thunder_slb_template_cache_test.go | 2 +- ...source_thunder_slb_template_cipher_test.go | 2 +- ...ce_thunder_slb_template_client_ssh_test.go | 2 +- ...ce_thunder_slb_template_client_ssl_test.go | 2 +- ...nder_slb_template_connection_reuse_test.go | 2 +- thunder/resource_thunder_slb_template_csv.go | 188 - .../resource_thunder_slb_template_csv_test.go | 2 +- ...resource_thunder_slb_template_dblb_test.go | 2 +- ...urce_thunder_slb_template_diameter_test.go | 2 +- ...source_thunder_slb_template_dns_logging.go | 198 +- .../resource_thunder_slb_template_dns_test.go | 2 +- ...under_slb_template_dynamic_service_test.go | 2 +- ...nder_slb_template_external_service_test.go | 2 +- .../resource_thunder_slb_template_fix_test.go | 2 +- .../resource_thunder_slb_template_ftp_test.go | 2 +- ...e_thunder_slb_template_http_policy_test.go | 2 +- ...resource_thunder_slb_template_http_test.go | 2 +- ...rce_thunder_slb_template_imap_pop3_test.go | 2 +- .../resource_thunder_slb_template_logging.go | 2 +- ...ource_thunder_slb_template_logging_test.go | 2 +- ...ource_thunder_slb_template_monitor_test.go | 2 +- thunder/resource_thunder_slb_template_mqtt.go | 2 +- ...resource_thunder_slb_template_mqtt_test.go | 2 +- ...source_thunder_slb_template_policy_test.go | 2 +- ...resource_thunder_slb_template_port_test.go | 2 +- ...e_thunder_slb_template_reqmod_icap_test.go | 2 +- ..._thunder_slb_template_respmod_icap_test.go | 2 +- ...ce_thunder_slb_template_server_ssh_test.go | 2 +- ...ce_thunder_slb_template_server_ssl_test.go | 2 +- ...source_thunder_slb_template_server_test.go | 2 +- .../resource_thunder_slb_template_sip_test.go | 2 +- thunder/resource_thunder_slb_template_smpp.go | 2 +- ...resource_thunder_slb_template_smpp_test.go | 2 +- ...resource_thunder_slb_template_smtp_test.go | 2 +- thunder/resource_thunder_slb_template_snmp.go | 235 - ...resource_thunder_slb_template_snmp_test.go | 2 +- ...resource_thunder_slb_template_ssli_test.go | 2 +- ...rce_thunder_slb_template_tcp_proxy_test.go | 2 +- .../resource_thunder_slb_template_tcp_test.go | 2 +- .../resource_thunder_slb_template_udp_test.go | 2 +- ..._thunder_slb_template_virtual_port_test.go | 2 +- ...hunder_slb_template_virtual_server_test.go | 2 +- ...under_slb_transparent_acl_template_test.go | 2 +- ...under_slb_transparent_tcp_template_test.go | 2 +- ...er_snmp_server_SNMPv1_v2c_user_oid_test.go | 2 +- ...hunder_snmp_server_SNMPv1_v2c_user_test.go | 2 +- ...ce_thunder_snmp_server_SNMPv3_user_test.go | 2 +- ...source_thunder_snmp_server_contact_test.go | 2 +- ...nder_snmp_server_enable_traps_gslb_test.go | 2 +- ...under_snmp_server_enable_traps_lsn_test.go | 2 +- ...r_snmp_server_enable_traps_network_test.go | 2 +- ...mp_server_enable_traps_routing_bgp_test.go | 2 +- ...p_server_enable_traps_routing_isis_test.go | 2 +- ...p_server_enable_traps_routing_ospf_test.go | 2 +- ...nmp_server_enable_traps_slb_change_test.go | 2 +- ...under_snmp_server_enable_traps_slb_test.go | 2 +- ...nder_snmp_server_enable_traps_snmp_test.go | 2 +- ...er_snmp_server_enable_traps_system_test.go | 2 +- ...e_thunder_snmp_server_enable_traps_test.go | 2 +- ...under_snmp_server_enable_traps_vcs_test.go | 2 +- ...ource_thunder_snmp_server_engineID_test.go | 2 +- ...resource_thunder_snmp_server_group_test.go | 2 +- ...thunder_snmp_server_host_host_name_test.go | 2 +- ...thunder_snmp_server_host_ipv4_host_test.go | 2 +- ...thunder_snmp_server_host_ipv6_host_test.go | 2 +- ...ource_thunder_snmp_server_location_test.go | 2 +- ...under_snmp_server_management_index_test.go | 2 +- .../resource_thunder_snmp_server_user_test.go | 2 +- .../resource_thunder_snmp_server_view_test.go | 2 +- thunder/resource_thunder_system_test.go | 2 +- ...ource_thunder_system_ve_mac_scheme_test.go | 2 +- thunder/resource_thunder_timezone_test.go | 2 +- .../resource_thunder_virtual_server_test.go | 4 +- thunder/resource_thunder_vrrp_common_test.go | 2 +- .../resource_thunder_vrrp_peer_group_test.go | 2 +- ...resource_thunder_vrrp_session_sync_test.go | 2 +- thunder/resource_thunder_vrrp_vrid_test.go | 2 +- ...thunder_web_category_category_list_test.go | 2 +- ...nder_web_category_reputation_scope_test.go | 2 +- ...ce_thunder_web_category_statistics_test.go | 2 +- thunder/resource_thunder_web_category_test.go | 2 +- thunder/thunder.go | 2 +- 970 files changed, 38483 insertions(+), 14274 deletions(-) create mode 100644 devops/jenkins/Jenkins Pipeline Configuration Guide.pdf create mode 100644 devops/jenkins/pipeline.groovy create mode 100644 devops/tekton/Tekton Pipeline Configuration Guide.pdf create mode 100644 devops/tekton/pipeline.yaml create mode 100644 devops/tekton/task.yaml delete mode 100644 docs/A10_TTP_1.2.0.pdf create mode 100644 docs/data-sources/clock_show_oper.md create mode 100644 docs/data-sources/interface_available_eth_list_oper.md create mode 100644 docs/data-sources/plat_cpu_packet_oper.md create mode 100644 docs/data-sources/sessions_oper.md create mode 100644 docs/data-sources/slb_http_proxy_oper.md create mode 100644 docs/data-sources/slb_server_oper.md create mode 100644 docs/data-sources/slb_ssl_stats_oper.md create mode 100644 docs/data-sources/syslog_oper.md create mode 100644 docs/data-sources/system_app_performance_stats.md rename docs/{resources => data-sources}/system_cpu_ctrl_cpu_oper.md (87%) rename docs/{resources => data-sources}/system_cpu_data_cpu_oper.md (87%) create mode 100644 docs/data-sources/system_hardware_oper.md create mode 100644 docs/data-sources/system_memory_oper.md create mode 100644 docs/data-sources/system_throughput_stats.md create mode 100644 docs/resources/cloud_services_cloud_provider_aws_log.md create mode 100644 docs/resources/cloud_services_cloud_provider_aws_metrics.md create mode 100644 docs/resources/cloud_services_cloud_provider_azure_log.md create mode 100644 docs/resources/cloud_services_cloud_provider_azure_metrics.md create mode 100644 docs/resources/cloud_services_cloud_provider_vmware_log.md create mode 100644 docs/resources/cloud_services_cloud_provider_vmware_metrics.md create mode 100644 docs/resources/gslb_template_csv.md create mode 100644 docs/resources/gslb_template_snmp.md create mode 100644 docs/resources/service_partition.md delete mode 100644 docs/resources/slb_template_csv.md delete mode 100644 docs/resources/slb_template_snmp.md delete mode 100644 examples/resources/snmp_server_enable_traps/resource.tf create mode 100644 examples/resources/thunder_access_list_extended/resource.tf create mode 100644 examples/resources/thunder_access_list_standard/resource.tf create mode 100644 examples/resources/thunder_admin_password/resource.tf create mode 100644 examples/resources/thunder_banner/resource.tf create mode 100644 examples/resources/thunder_bgp/resource.tf delete mode 100644 examples/resources/thunder_change_password/resource.tf create mode 100644 examples/resources/thunder_class_list/resource.tf create mode 100644 examples/resources/thunder_clock_show_oper/resource.tf create mode 100644 examples/resources/thunder_cloud_services_cloud_provider_aws_log/resource.tf create mode 100644 examples/resources/thunder_cloud_services_cloud_provider_aws_metrics/resource.tf create mode 100644 examples/resources/thunder_cloud_services_cloud_provider_azure_log/resource.tf create mode 100644 examples/resources/thunder_cloud_services_cloud_provider_azure_metrics/resource.tf create mode 100644 examples/resources/thunder_cloud_services_cloud_provider_vmware_log/resource.tf create mode 100644 examples/resources/thunder_cloud_services_cloud_provider_vmware_metrics/resource.tf create mode 100644 examples/resources/thunder_configure_sync/resource.tf create mode 100644 examples/resources/thunder_ethernet/resource.tf create mode 100644 examples/resources/thunder_file_aflex/resource.tf create mode 100644 examples/resources/thunder_file_ca_cert/resource.tf create mode 100644 examples/resources/thunder_file_csr/resource.tf create mode 100644 examples/resources/thunder_file_ssl_cert/resource.tf create mode 100644 examples/resources/thunder_file_ssl_cert_key/resource.tf create mode 100644 examples/resources/thunder_file_ssl_crl/resource.tf create mode 100644 examples/resources/thunder_file_ssl_key/resource.tf create mode 100644 examples/resources/thunder_fw_active_rule_set/resource.tf create mode 100644 examples/resources/thunder_fw_alg_dns/resource.tf create mode 100644 examples/resources/thunder_fw_alg_ftp/resource.tf create mode 100644 examples/resources/thunder_fw_alg_icmp/resource.tf create mode 100644 examples/resources/thunder_fw_alg_pptp/resource.tf create mode 100644 examples/resources/thunder_fw_alg_rtsp/resource.tf create mode 100644 examples/resources/thunder_fw_alg_sip/resource.tf create mode 100644 examples/resources/thunder_fw_alg_tftp/resource.tf create mode 100644 examples/resources/thunder_fw_app/resource.tf create mode 100644 examples/resources/thunder_fw_apply_changes/resource.tf create mode 100644 examples/resources/thunder_fw_clear_session_filter/resource.tf create mode 100644 examples/resources/thunder_fw_full_cone_session/resource.tf create mode 100644 examples/resources/thunder_fw_global/resource.tf create mode 100644 examples/resources/thunder_fw_gtp/resource.tf create mode 100644 examples/resources/thunder_fw_gtp_in_gtp_filtering/resource.tf create mode 100644 examples/resources/thunder_fw_gtp_v0/resource.tf create mode 100644 examples/resources/thunder_fw_helper_sessions/resource.tf create mode 100644 examples/resources/thunder_fw_limit_entry/resource.tf create mode 100644 examples/resources/thunder_fw_local_log/resource.tf create mode 100644 examples/resources/thunder_fw_logging/resource.tf create mode 100644 examples/resources/thunder_fw_radius_server/resource.tf create mode 100644 examples/resources/thunder_fw_resource_usage/resource.tf create mode 100644 examples/resources/thunder_fw_server/resource.tf create mode 100644 examples/resources/thunder_fw_service_group/resource.tf create mode 100644 examples/resources/thunder_fw_status/resource.tf create mode 100644 examples/resources/thunder_fw_system_status/resource.tf create mode 100644 examples/resources/thunder_fw_tap_monitor/resource.tf create mode 100644 examples/resources/thunder_fw_tcp_mss_clamp/resource.tf create mode 100644 examples/resources/thunder_fw_tcp_reset_on_error/resource.tf create mode 100644 examples/resources/thunder_fw_tcp_rst_close_immediate/resource.tf create mode 100644 examples/resources/thunder_fw_tcp_window_check/resource.tf create mode 100644 examples/resources/thunder_fw_template_logging/resource.tf create mode 100644 examples/resources/thunder_fw_top_k_rules/resource.tf create mode 100644 examples/resources/thunder_fw_urpf/resource.tf create mode 100644 examples/resources/thunder_fw_vrid/resource.tf create mode 100644 examples/resources/thunder_glm/resource.tf create mode 100644 examples/resources/thunder_glm_send/resource.tf create mode 100644 examples/resources/thunder_gslb_template_csv/resource.tf create mode 100644 examples/resources/thunder_gslb_template_snmp/resource.tf create mode 100644 examples/resources/thunder_harmony_controller_profile/resource.tf create mode 100644 examples/resources/thunder_hostname/resource.tf create mode 100644 examples/resources/thunder_interface_Lif_ip/resource.tf create mode 100644 examples/resources/thunder_interface_available_eth_list_oper/resource.tf create mode 100644 examples/resources/thunder_interface_ethernet/resource.tf create mode 100644 examples/resources/thunder_interface_ethernet_bfd/resource.tf create mode 100644 examples/resources/thunder_interface_ethernet_ip/resource.tf create mode 100644 examples/resources/thunder_interface_ethernet_ipv6/resource.tf create mode 100644 examples/resources/thunder_interface_ethernet_lldp/resource.tf create mode 100644 examples/resources/thunder_interface_ethernet_trunk_group/resource.tf create mode 100644 examples/resources/thunder_interface_management/resource.tf create mode 100644 examples/resources/thunder_interface_ve_bfd/resource.tf create mode 100644 examples/resources/thunder_interface_ve_ip/resource.tf create mode 100644 examples/resources/thunder_interface_ve_ipv6/resource.tf create mode 100644 examples/resources/thunder_ip_access_list/resource.tf create mode 100644 examples/resources/thunder_ip_address/resource.tf create mode 100644 examples/resources/thunder_ip_dns_primary/resource.tf create mode 100644 examples/resources/thunder_ip_dns_secondary/resource.tf create mode 100644 examples/resources/thunder_ip_dns_suffix/resource.tf create mode 100644 examples/resources/thunder_ip_frag/resource.tf create mode 100644 examples/resources/thunder_ip_icmp/resource.tf create mode 100644 examples/resources/thunder_ip_nat_alg_pptp/resource.tf create mode 100644 examples/resources/thunder_ip_nat_global/resource.tf create mode 100644 examples/resources/thunder_ip_nat_icmp/resource.tf create mode 100644 examples/resources/thunder_ip_nat_pool/resource.tf create mode 100644 examples/resources/thunder_ip_prefix_list/resource.tf create mode 100644 examples/resources/thunder_ip_reroute/resource.tf create mode 100644 examples/resources/thunder_ip_route_rib/resource.tf create mode 100644 examples/resources/thunder_ip_route_static_bfd/resource.tf create mode 100644 examples/resources/thunder_ip_tcp/resource.tf create mode 100644 examples/resources/thunder_ipv6_frag/resource.tf create mode 100644 examples/resources/thunder_ipv6_icmpv6/resource.tf create mode 100644 examples/resources/thunder_ipv6_nat_icmpv6/resource.tf create mode 100644 examples/resources/thunder_ipv6_nat_pool/resource.tf create mode 100644 examples/resources/thunder_ipv6_route_rib/resource.tf create mode 100644 examples/resources/thunder_ipv6_route_static_bfd_bfd_ipv6/resource.tf create mode 100644 examples/resources/thunder_ipv6_route_static_bfd_ethernet/resource.tf create mode 100644 examples/resources/thunder_ipv6_route_static_bfd_trunk/resource.tf create mode 100644 examples/resources/thunder_ipv6_route_static_bfd_ve/resource.tf create mode 100644 examples/resources/thunder_logging_auditlog/resource.tf create mode 100644 examples/resources/thunder_logging_console/resource.tf create mode 100644 examples/resources/thunder_logging_host_ipv4addr/resource.tf create mode 100644 examples/resources/thunder_logging_host_ipv6addr/resource.tf create mode 100644 examples/resources/thunder_logging_host_partition/resource.tf create mode 100644 examples/resources/thunder_ntp_auth_key/resource.tf create mode 100644 examples/resources/thunder_ntp_server_hostname/resource.tf create mode 100644 examples/resources/thunder_ntp_trusted_key/resource.tf create mode 100644 examples/resources/thunder_overlay_tunnel_options/resource.tf create mode 100644 examples/resources/thunder_overlay_tunnel_vtep/resource.tf create mode 100644 examples/resources/thunder_partition/resource.tf create mode 100644 examples/resources/thunder_plat_cpu_packet_oper/resource.tf create mode 100644 examples/resources/thunder_reboot/resource.tf create mode 100644 examples/resources/thunder_rib_route/resource.tf create mode 100644 examples/resources/thunder_route_map/resource.tf create mode 100644 examples/resources/thunder_router_bgp_address_family_ipv6/resource.tf create mode 100644 examples/resources/thunder_router_bgp_address_family_ipv6_neighbor_ethernet_neighbor_ipv6/resource.tf create mode 100644 examples/resources/thunder_router_bgp_address_family_ipv6_neighbor_ipv4_neighbor/resource.tf create mode 100644 examples/resources/thunder_router_bgp_address_family_ipv6_neighbor_ipv6_neighbor/resource.tf create mode 100644 examples/resources/thunder_router_bgp_address_family_ipv6_neighbor_peer_group_neighbor/resource.tf create mode 100644 examples/resources/thunder_router_bgp_address_family_ipv6_neighbor_trunk_neighbor_ipv6/resource.tf create mode 100644 examples/resources/thunder_router_bgp_address_family_ipv6_neighbor_ve_neighbor_ipv6/resource.tf create mode 100644 examples/resources/thunder_router_bgp_address_family_ipv6_network_ipv6_network/resource.tf create mode 100644 examples/resources/thunder_router_bgp_address_family_ipv6_network_synchronization/resource.tf create mode 100644 examples/resources/thunder_router_bgp_address_family_ipv6_redistribute/resource.tf create mode 100644 examples/resources/thunder_router_bgp_neighbor_ethernet_neighbor/resource.tf create mode 100644 examples/resources/thunder_router_bgp_neighbor_ipv4_neighbor/resource.tf create mode 100644 examples/resources/thunder_router_bgp_neighbor_ipv6_neighbor/resource.tf create mode 100644 examples/resources/thunder_router_bgp_neighbor_peer_group_neighbor/resource.tf create mode 100644 examples/resources/thunder_router_bgp_neighbor_trunk_neighbor/resource.tf create mode 100644 examples/resources/thunder_router_bgp_neighbor_ve_neighbor/resource.tf create mode 100644 examples/resources/thunder_router_bgp_network_synchronization/resource.tf create mode 100644 examples/resources/thunder_router_bgp_redistribute/resource.tf create mode 100644 examples/resources/thunder_router_ospf/resource.tf create mode 100644 examples/resources/thunder_router_ospf_area/resource.tf create mode 100644 examples/resources/thunder_router_ospf_default_information/resource.tf create mode 100644 examples/resources/thunder_router_ospf_redistribute/resource.tf create mode 100644 examples/resources/thunder_rule_set/resource.tf create mode 100644 examples/resources/thunder_server/resource.tf create mode 100644 examples/resources/thunder_service_group/resource.tf create mode 100644 examples/resources/thunder_service_partition/resource.tf create mode 100644 examples/resources/thunder_sessions_oper/resource.tf create mode 100644 examples/resources/thunder_slb_aflow/resource.tf create mode 100644 examples/resources/thunder_slb_common/resource.tf create mode 100644 examples/resources/thunder_slb_common_buffer_threshold/resource.tf create mode 100644 examples/resources/thunder_slb_common_conn_rate_limit_src_ip/resource.tf create mode 100644 examples/resources/thunder_slb_connection_reuse/resource.tf create mode 100644 examples/resources/thunder_slb_crl_srcip/resource.tf create mode 100644 examples/resources/thunder_slb_dns/resource.tf create mode 100644 examples/resources/thunder_slb_dns_cache/resource.tf create mode 100644 examples/resources/thunder_slb_dns_response_rate_limiting/resource.tf create mode 100644 examples/resources/thunder_slb_fast_http_proxy/resource.tf create mode 100644 examples/resources/thunder_slb_fix/resource.tf create mode 100644 examples/resources/thunder_slb_ftp_ctl/resource.tf create mode 100644 examples/resources/thunder_slb_ftp_data/resource.tf create mode 100644 examples/resources/thunder_slb_ftp_proxy/resource.tf create mode 100644 examples/resources/thunder_slb_generic_proxy/resource.tf create mode 100644 examples/resources/thunder_slb_health_gateway/resource.tf create mode 100644 examples/resources/thunder_slb_health_stat/resource.tf create mode 100644 examples/resources/thunder_slb_http2/resource.tf create mode 100644 examples/resources/thunder_slb_http_proxy/resource.tf create mode 100644 examples/resources/thunder_slb_http_proxy_oper/resource.tf create mode 100644 examples/resources/thunder_slb_hw_compress/resource.tf create mode 100644 examples/resources/thunder_slb_icap/resource.tf create mode 100644 examples/resources/thunder_slb_icap_http/resource.tf create mode 100644 examples/resources/thunder_slb_imapproxy/resource.tf create mode 100644 examples/resources/thunder_slb_l4/resource.tf create mode 100644 examples/resources/thunder_slb_l7session/resource.tf create mode 100644 examples/resources/thunder_slb_mlb/resource.tf create mode 100644 examples/resources/thunder_slb_mssql/resource.tf create mode 100644 examples/resources/thunder_slb_mysql/resource.tf create mode 100644 examples/resources/thunder_slb_passthrough/resource.tf create mode 100644 examples/resources/thunder_slb_perf/resource.tf create mode 100644 examples/resources/thunder_slb_persist/resource.tf create mode 100644 examples/resources/thunder_slb_player_id_global/resource.tf create mode 100644 examples/resources/thunder_slb_pop3_proxy/resource.tf create mode 100644 examples/resources/thunder_slb_proxy/resource.tf create mode 100644 examples/resources/thunder_slb_rate_limit_log/resource.tf create mode 100644 examples/resources/thunder_slb_rc_cache_global/resource.tf create mode 100644 examples/resources/thunder_slb_resource_usage/resource.tf create mode 100644 examples/resources/thunder_slb_server_oper/resource.tf create mode 100644 examples/resources/thunder_slb_server_port/resource.tf create mode 100644 examples/resources/thunder_slb_sip/resource.tf create mode 100644 examples/resources/thunder_slb_smpp/resource.tf create mode 100644 examples/resources/thunder_slb_smtp/resource.tf create mode 100644 examples/resources/thunder_slb_spdy_proxy/resource.tf create mode 100644 examples/resources/thunder_slb_sport_rate_limit/resource.tf create mode 100644 examples/resources/thunder_slb_ssl_cert_revoke/resource.tf create mode 100644 examples/resources/thunder_slb_ssl_expire_check/resource.tf create mode 100644 examples/resources/thunder_slb_ssl_forward_proxy/resource.tf create mode 100644 examples/resources/thunder_slb_ssl_stats_oper/resource.tf create mode 100644 examples/resources/thunder_slb_svm_source_nat/resource.tf create mode 100644 examples/resources/thunder_slb_switch/resource.tf create mode 100644 examples/resources/thunder_slb_template_cache/resource.tf create mode 100644 examples/resources/thunder_slb_template_client_ssh/resource.tf create mode 100644 examples/resources/thunder_slb_template_client_ssl/resource.tf create mode 100644 examples/resources/thunder_slb_template_connection_reuse/resource.tf create mode 100644 examples/resources/thunder_slb_template_dblb/resource.tf create mode 100644 examples/resources/thunder_slb_template_diameter/resource.tf create mode 100644 examples/resources/thunder_slb_template_dns_class_list/resource.tf create mode 100644 examples/resources/thunder_slb_template_dns_logging/resource.tf create mode 100644 examples/resources/thunder_slb_template_dynamic_service/resource.tf create mode 100644 examples/resources/thunder_slb_template_external_service/resource.tf create mode 100644 examples/resources/thunder_slb_template_fix/resource.tf create mode 100644 examples/resources/thunder_slb_template_ftp/resource.tf create mode 100644 examples/resources/thunder_slb_template_http/resource.tf create mode 100644 examples/resources/thunder_slb_template_http_policy/resource.tf create mode 100644 examples/resources/thunder_slb_template_imap_pop3/resource.tf create mode 100644 examples/resources/thunder_slb_template_logging/resource.tf create mode 100644 examples/resources/thunder_slb_template_monitor/resource.tf create mode 100644 examples/resources/thunder_slb_template_mqtt/resource.tf create mode 100644 examples/resources/thunder_slb_template_persist_cookie/resource.tf create mode 100644 examples/resources/thunder_slb_template_persist_source_ip/resource.tf create mode 100644 examples/resources/thunder_slb_template_policy/resource.tf create mode 100644 examples/resources/thunder_slb_template_port/resource.tf create mode 100644 examples/resources/thunder_slb_template_reqmod_icap/resource.tf create mode 100644 examples/resources/thunder_slb_template_respmod_icap/resource.tf create mode 100644 examples/resources/thunder_slb_template_server/resource.tf create mode 100644 examples/resources/thunder_slb_template_server_ssh/resource.tf create mode 100644 examples/resources/thunder_slb_template_server_ssl/resource.tf create mode 100644 examples/resources/thunder_slb_template_sip/resource.tf create mode 100644 examples/resources/thunder_slb_template_smpp/resource.tf create mode 100644 examples/resources/thunder_slb_template_smtp/resource.tf create mode 100644 examples/resources/thunder_slb_template_ssli/resource.tf create mode 100644 examples/resources/thunder_slb_template_tcp/resource.tf create mode 100644 examples/resources/thunder_slb_template_tcp_proxy/resource.tf create mode 100644 examples/resources/thunder_slb_template_udp/resource.tf create mode 100644 examples/resources/thunder_slb_template_virtual_port/resource.tf create mode 100644 examples/resources/thunder_slb_template_virtual_server/resource.tf create mode 100644 examples/resources/thunder_slb_transparent_acl_template/resource.tf create mode 100644 examples/resources/thunder_slb_transparent_tcp_template/resource.tf create mode 100644 examples/resources/thunder_slb_virtual_server_port/resource.tf create mode 100644 examples/resources/thunder_snmp_server_contact/resource.tf create mode 100644 examples/resources/thunder_snmp_server_enable_traps/resource.tf create mode 100644 examples/resources/thunder_snmp_server_enable_traps_gslb/resource.tf create mode 100644 examples/resources/thunder_snmp_server_enable_traps_lsn/resource.tf create mode 100644 examples/resources/thunder_snmp_server_enable_traps_network/resource.tf create mode 100644 examples/resources/thunder_snmp_server_enable_traps_routing_bgp/resource.tf create mode 100644 examples/resources/thunder_snmp_server_enable_traps_routing_isis/resource.tf create mode 100644 examples/resources/thunder_snmp_server_enable_traps_routing_ospf/resource.tf create mode 100644 examples/resources/thunder_snmp_server_enable_traps_slb/resource.tf create mode 100644 examples/resources/thunder_snmp_server_enable_traps_slb_change/resource.tf create mode 100644 examples/resources/thunder_snmp_server_enable_traps_snmp/resource.tf create mode 100644 examples/resources/thunder_snmp_server_enable_traps_ssl/resource.tf create mode 100644 examples/resources/thunder_snmp_server_enable_traps_system/resource.tf create mode 100644 examples/resources/thunder_snmp_server_enable_traps_vcs/resource.tf create mode 100644 examples/resources/thunder_snmp_server_enable_traps_vrrp_a/resource.tf create mode 100644 examples/resources/thunder_snmp_server_engine_id/resource.tf create mode 100644 examples/resources/thunder_snmp_server_group/resource.tf create mode 100644 examples/resources/thunder_snmp_server_host_host_name/resource.tf create mode 100644 examples/resources/thunder_snmp_server_host_ipv4_host/resource.tf create mode 100644 examples/resources/thunder_snmp_server_host_ipv6_host/resource.tf create mode 100644 examples/resources/thunder_snmp_server_location/resource.tf create mode 100644 examples/resources/thunder_snmp_server_management_index/resource.tf create mode 100644 examples/resources/thunder_snmp_server_slb_data_cache_timeout/resource.tf create mode 100644 examples/resources/thunder_snmp_server_snmpv1_v2c_user/resource.tf create mode 100644 examples/resources/thunder_snmp_server_snmpv1_v2c_user_oid/resource.tf create mode 100644 examples/resources/thunder_snmp_server_snmpv3_user/resource.tf create mode 100644 examples/resources/thunder_snmp_server_user/resource.tf create mode 100644 examples/resources/thunder_snmp_server_view/resource.tf create mode 100644 examples/resources/thunder_syslog_oper/resource.tf create mode 100644 examples/resources/thunder_system_app_performance_stats/resource.tf create mode 100644 examples/resources/thunder_system_cpu_ctrl_cpu_oper/resource.tf create mode 100644 examples/resources/thunder_system_cpu_data_cpu_oper/resource.tf create mode 100644 examples/resources/thunder_system_hardware_oper/resource.tf create mode 100644 examples/resources/thunder_system_memory_oper/resource.tf create mode 100644 examples/resources/thunder_system_throughput_stats/resource.tf create mode 100644 examples/resources/thunder_system_ve_mac_scheme/resource.tf create mode 100644 examples/resources/thunder_terminal/resource.tf delete mode 100644 examples/resources/thunder_terminal_timeout_config/resource.tf create mode 100644 examples/resources/thunder_timezone/resource.tf create mode 100644 examples/resources/thunder_virtual_server/resource.tf create mode 100644 examples/resources/thunder_vrrp_peer_group/resource.tf create mode 100644 examples/resources/thunder_vrrp_session_sync/resource.tf create mode 100644 examples/resources/thunder_web_category/resource.tf create mode 100644 examples/resources/thunder_web_category_category_list/resource.tf create mode 100644 examples/resources/thunder_web_category_proxy_server/resource.tf create mode 100644 examples/resources/thunder_web_category_reputation_scope/resource.tf create mode 100644 examples/resources/thunder_web_category_statistics/resource.tf create mode 100644 examples/resources/thunder_write_memory/resource.tf delete mode 100644 go_thunder/thunder/SlbTemplateCSV.go delete mode 100644 go_thunder/thunder/SlbTemplateSNMP.go create mode 100644 thunder/axapi/endpoint/clock_show_oper.go create mode 100644 thunder/axapi/endpoint/cloud_services_cloud_provider_aws_log.go create mode 100644 thunder/axapi/endpoint/cloud_services_cloud_provider_aws_metrics.go create mode 100644 thunder/axapi/endpoint/cloud_services_cloud_provider_azure_log.go create mode 100644 thunder/axapi/endpoint/cloud_services_cloud_provider_azure_metrics.go create mode 100644 thunder/axapi/endpoint/cloud_services_cloud_provider_vmware_log.go create mode 100644 thunder/axapi/endpoint/cloud_services_cloud_provider_vmware_metrics.go create mode 100644 thunder/axapi/endpoint/gslb_template_csv.go create mode 100644 thunder/axapi/endpoint/gslb_template_snmp.go create mode 100644 thunder/axapi/endpoint/interface_available_eth_list_oper.go create mode 100644 thunder/axapi/endpoint/ip_route_rib.go create mode 100644 thunder/axapi/endpoint/plat_cpu_packet_oper.go create mode 100644 thunder/axapi/endpoint/service_partition.go create mode 100644 thunder/axapi/endpoint/sessions_oper.go create mode 100644 thunder/axapi/endpoint/slb_http_proxy_oper.go create mode 100644 thunder/axapi/endpoint/slb_server_oper.go create mode 100644 thunder/axapi/endpoint/slb_ssl_stats_oper.go create mode 100644 thunder/axapi/endpoint/syslog_oper.go create mode 100644 thunder/axapi/endpoint/system_app_performance_stats.go create mode 100644 thunder/axapi/endpoint/system_hardware_oper.go create mode 100644 thunder/axapi/endpoint/system_memory_oper.go create mode 100644 thunder/axapi/endpoint/system_throughput_stats.go delete mode 100644 thunder/endpoint_ip_route_rib.go create mode 100644 thunder/resource_clock_show_oper.go create mode 100644 thunder/resource_cloud_services_cloud_provider_aws_log.go create mode 100644 thunder/resource_cloud_services_cloud_provider_aws_metrics.go create mode 100644 thunder/resource_cloud_services_cloud_provider_azure_log.go create mode 100644 thunder/resource_cloud_services_cloud_provider_azure_metrics.go create mode 100644 thunder/resource_cloud_services_cloud_provider_vmware_log.go create mode 100644 thunder/resource_cloud_services_cloud_provider_vmware_metrics.go create mode 100644 thunder/resource_gslb_template_csv.go create mode 100644 thunder/resource_gslb_template_snmp.go create mode 100644 thunder/resource_interface_available_eth_list_oper.go create mode 100644 thunder/resource_plat_cpu_packet_oper.go create mode 100644 thunder/resource_service_partition.go create mode 100644 thunder/resource_sessions_oper.go create mode 100644 thunder/resource_slb_http_proxy_oper.go create mode 100644 thunder/resource_slb_server_oper.go create mode 100644 thunder/resource_slb_ssl_stats_oper.go create mode 100644 thunder/resource_syslog_oper.go create mode 100644 thunder/resource_system_app_performance_stats.go create mode 100644 thunder/resource_system_hardware_oper.go create mode 100644 thunder/resource_system_memory_oper.go create mode 100644 thunder/resource_system_throughput_stats.go delete mode 100644 thunder/resource_thunder_slb_template_csv.go delete mode 100644 thunder/resource_thunder_slb_template_snmp.go diff --git a/README.md b/README.md index 0c87cae96..1748ebc7b 100644 --- a/README.md +++ b/README.md @@ -1,140 +1,365 @@ -# A10 Networks Terraform Provider Release v1.2.2. +# A10’s Thunder Terraform Provider Introduction. + +Welcome TTP 1.3.0 Latest Version. + +Thunder Terraform Provider is a custom plugin to configure thunder using terraform as a IaC tool and terraform scripts[.tf] simplifies applying configuration on thunder. You can configure or de-configure thunder settings. + +This plugin contains several configurations of thunder which can be applied via out of box examples provided. +Terraform provider plugin will only configure thunder via axapi, It will not install thunder. + +## Support Matrix + +| ACOS | [TTP 1.0.0](https://github.com/a10networks/terraform-provider-thunder/tree/v1.0.0) | [TTP 1.1.0](https://github.com/a10networks/terraform-provider-thunder/tree/v1.1.0) | [TTP 1.2.1](https://github.com/a10networks/terraform-provider-thunder/tree/v1.2.1) | [TTP 1.2.2](https://github.com/a10networks/terraform-provider-thunder/tree/v1.2.2) | [TTP 1.3.0](https://github.com/a10networks/terraform-provider-thunder/tree/v1.3.0) | +| :--------: | :-------: | :-------: | :-------: | :-------: | :-------: | +| `ACOS version 6.0.1` | `No` | `No` | `Yes`| `Yes` | `Yes` | +| `ACOS version 6.0.0-p2` | `No` | `No` | `Yes`| `Yes` | `Yes` | +| `ACOS version 6.0.0-p1` | `No` | `No` | `Yes`| `Yes` | `Yes` | +| `ACOS version 5.2.1-p6` | `No` | `Yes` | `No` | `No` | `No` | +| `ACOS version 5.2.1-p5`| `No` | `Yes` | `No` | `No` | `No` | +| `ACOS version 5.2.1-p4` | `Yes` | `No` | `No` | `No` | `No` | +| `ACOS version 5.2.1-p3` | `Yes` | `No` | `No` | `No` | `No` | + +## Release Logs + +### TTP-1.3.0 +- Support for ACOS v6.0.1 +- Jenkins and Tekton integration examples +- Additional resources: + + 1. Cloud Services Cloud Provider AWS Log + 2. Cloud Services Cloud Provider Azure Log + 3. Cloud Services Cloud Provider VMware Log + 4. Cloud Services Cloud Provider AWS Metrics + 5. Cloud Services Cloud Provider Azure Metrics + 6. Cloud Services Cloud Provider VMware Metrics + 7. Service Partition + 8. System App Performance Stats + 9. System Throughput Stats + 10. System Memory Oper + 11. System Hardware Oper + 12. Interface Available Eth List Oper + 13. Sessions Oper + 14. Plat CPU Packet Oper + 15. SLB HTTP Proxy Oper + 16. SLB SSL Stats Oper + 17. SLB Server Oper + 18. Clock Show Oper + 19. Syslog Oper + +### TTP-1.2.2 +- Support for MAC M1 processors +- Support for ACOS 6.0.0-p1 and ACOS 6.0.0-p2 +- Fixed Change Optional to Required for partition, slb server, and slb service-group +- Defect Fixtures -Welcome to GitHub repository for A10’s Registered Terraform Provider for vThunder. +### TTP-1.2.1 +- Support for ACOS 6.0.0-p1 +- Defect Fixtures +### TTP-1.1.0 +- Extended Support for GSLB AXAPIs +- Extended Support for Geo-Location AXAPIs +- Extended Support for Password Change AXAPIs +- Defect Fixtures -## What is vThunder Terraform Provider? +## How it works + 1. Install terraform on your local OS, Please refer below sections for more details. + 2. Search required terraform configuration from examples. In case not found create a new one, Please refer below sections for more details. + 3. Execute terraform scripts to apply thunder configuration, Please refer below sections for more details. + 4. Verify thunder configuration after terraform apply, Please refer below sections for more details. -This collection of sample terraform resources [tf scripts] along with examples will help you get started with ACOS-vThunder AXAPI/v3 cofiguration. -Terraform scripts simplifies appliying cofiguration on vThunder. You can configure or de-configure vthunder settings. -Terraform provider plugin will only configure vThunder via axapi, It will not install vThunder. +## How to Install Terraform on Ubuntu: -## A10’s vThunder Support Information + To install Terraform on Ubuntu, perform the following steps: -Below listed A10’s vThunder vADC (Application Delivery Controller) are tested and supported. -- 64-bit Advanced Core OS (ACOS) version 6.0.0-p1, build 47. -- 64-bit Advanced Core OS (ACOS) version 6.0.0-p2, build 22. + 1. Run the following commands to download and install Terraform 1.5.6. + a. wget https://releases.hashicorp.com/terraform/1.5.6/terraform_1.5.6_linux_amd64.zip + b. unzip terraform_1.5.6_linux_amd64.zip + c. mv terraform /usr/local/bin/ + 2. Verify installation using below command: + a. terraform -version -## TTP Support Matrix + For more information, please visit : https://www.terraform.io/downloads.html -| ACOS | [TTP 1.0.0](https://github.com/a10networks/terraform-provider-thunder/tree/v1.0.0) | [TTP 1.1.0](https://github.com/a10networks/terraform-provider-thunder/tree/v1.1.0) | [TTP 1.2.1](https://github.com/a10networks/terraform-provider-thunder/tree/v1.2.1) | [TTP 1.2.2](https://github.com/a10networks/terraform-provider-thunder/tree/v1.2.2) | -| :--------: | :-------: | :-------: | :-------: | :-------: | -| `5.2.1-p3-build 70` | `Yes` | `No` | `No` | `No` | -| `5.2.1-p4-build 70` | `Yes` | `No` | `No` | `No` | -| `5.2.1-p5-build 114`| `No` | `Yes` | `No` | `No` | -| `5.2.1-p6-build 74` | `No` | `Yes` | `No` | `No` | -| `6.0.0-p1-build 47` | `No` | `No` | `Yes`| `Yes` | -| `6.0.0-p1-build 22` | `No` | `No` | `Yes`| `Yes` | +## How to Install Terraform on Windows: -## Release Logs Information + To install Terraform on Windows, perform the following steps: -- Support for MAC M1 processors -- Support for ACOS 6.0.0-p1 AXAPIs -- Support for ACOS 6.0.0-p2 AXAPIs -- Fixed Change Optional to Required for partition, slb server, and slb service-group -- Defect Fixtures + 1. Download windows installable from: + https://developer.hashicorp.com/terraform/downloads + https://releases.hashicorp.com/terraform/1.5.6/terraform_1.5.6_windows_386.zip + https://releases.hashicorp.com/terraform/1.5.6/terraform_1.5.6_windows_amd64.zip + 2. Extract at C:/Terraform1.5.6 + 3. Update environment variable 'path and add 'C:/Terraform1.5.6/' -# Terraform Provider Thunder + For more information, please visit: https://developer.hashicorp.com/terraform/downloads -A [Terraform](https://www.terraform.io) provider for A10 Thunder. -- [![Gitter chat](https://badges.gitter.im/hashicorp-terraform/Lobby.png)](https://gitter.im/hashicorp-terraform/Lobby) -dd- Terraform Mailing list: [Google Groups](http://groups.google.com/group/terraform-tool) +## How to Install Terraform on MacOS: -# Maintainers + To install Terraform on MacOS, perform the following steps: + Run the following commands to download and install the latest version of Terraform: -This provider plugin is maintained by the Cloud team at [A10 Networks](https://www.a10networks.com/). + 1. brew tap hashicorp/tap + 2. brew install hashicorp/tap/terraform -# Requirements + For more information, please visit: https://developer.hashicorp.com/terraform/downloads -- [Terraform](https://www.terraform.io/downloads.html) 1.0.x -- [Go](https://golang.org/doc/install) 1.16 (to build the provider plugin) +## How to Search Thunder Configuration +To search for a Thunder Configuration in the existing examples, perform the following steps: -# Building The Provider + 1. Search the required Terraform configuration script directory navigate to examples > resources directory. -```sh -$ git clone git@github.com:a10networks/terraform-provider-thunder.git -$ make build -``` + **Example:** -# Building The Provider in Go Work-Space + If you want to apply the bgp router configuration on Thunder, search for the thunder_router_bgp directory under the resources directory. + + 2. Open the Terraform script from the directory. + + **Example:** + + Open resource.tf script under the thunder_router_bgp directory. + + 3. Update the Thunder IP address and login credentials depending on the type of Thunder installed and review the Thunder configurations in the Terraform script. -```sh -$ mkdir -p $GOPATH/src/github.com/a10networks/ -$ cd $GOPATH/src/github.com/a10networks/ -$ git clone git@github.com:a10networks/terraform-provider-thunder.git ``` +provider "thunder" { + address = var.dut9049 + username = var.username + password = var.password +} -Build the provider +resource "thunder_router_bgp" "bgp1" { + as_number = 101 + neighbor { + ipv4_neighbor_list { + neighbor_ipv4 = "10.1.1.104" + activate = 1 + nbr_remote_as = 104 + allowas_in = 1 + allowas_in_count = 10 + graceful_restart = 1 + } + } +} + +resource "thunder_router_bgp" "bgp2" { + provider = thunder.L3V_A + as_number = 201 + neighbor { + ipv4_neighbor_list { + neighbor_ipv4 = "10.1.1.204" + activate = 1 + nbr_remote_as = 204 + allowas_in = 1 + allowas_in_count = 10 + graceful_restart = 1 + } + } +} -```sh -$ make build ``` -# Local Plugin Installation +4. Add, modify, or remove the Thunder configuration parameters and their corresponding values as appropriate. + +5. Save the changes. + +6. Identify the compatible Terraform Provider version for your installed ACOS version from Support Matrix Section. + +7. Go to [A10 Networks Terraform Thunder Provider](https://registry.terraform.io/providers/a10networks/thunder/latest/docs). -For Thunder plugin Installation without fetching it from A10 Networks Namespace. +8. Select your Terraform Provider version from the Latest Version drop-down. + +9. Expand Resources from the left-panel to select the required Thunder configuration resource. + +10. Copy and paste the following Terraform Provider configuration from the USE PROVIDER drop-down to your Terraform script. -Inside your cloned repo; here x.y.z is version example 0.4.5 -1. $ go build -o terraform-provider-thunder -2. $ mkdir -p ~/.terraform.d/plugins/a10networks.com/a10networks/thunder/x.y.z/linux_amd64/ -3. $ cp terraform-provider-thunder ~/.terraform.d/plugins/a10networks.com/a10networks/thunder/x.y.z/linux_amd64/ -4. create version.tf file like: ``` terraform { required_providers { thunder = { - source = "a10networks.com/a10networks/thunder" - version = "x.y.z" + source = "a10networks/thunder" + version = "1.3.0" } } } ``` -If you face some dependency issue try `$ go mod tidy` or `$ go mod vendor` +11. Save the Terraform script. -*Note:* After cloing you can also run `$ make local` to perform these above step automatically for dummy version 7.7.7 in Linux env. -# Documentation +## How to create new terraform thunder configuration example. -Documentation for the A10 Thunder Terraform integration is available at [link] -Terraform provider documentation is available at https://registry.terraform.io/providers/a10networks/thunder/latest/docs + Here are step-by-step instructions for creating a terraform thunder configuration example. + For example if you want to apply bgp router configuration on thunder and which doesn't exist in examples. + +1. Create a new directory to house your terraform configuration files. + +``` + mkdir thunder_router_bgp + cd thunder_router_bgp +``` -A10 Thunder AXAPI support documentation available at https://documentation.a10networks.com/docs/IaC/Terraform/thunder-terraform-provider/1-2-0/ +2. Create a `.tf` file, such as `thunder_router_bgp.tf`, in your "thunder_router_bgp" directory. In this file, define the Thunder ROUTER BGP configurations using the A10Networks Thunder Provider. Refer to the official documentation: https://registry.terraform.io/providers/a10networks/thunder/latest/docs/resources/router_bgp for the required resource and parameters. + + Here is basic example: + ``` + terraform { + required_providers { + thunder = { + source = "a10networks/thunder" + version = "1.3.0" # Replace with your desired provider version + } + } + } -# Developing the Provider + provider "a10networks" { + host = "10.10.10.10" # Replace with your desired your thunder device ip + username = "admin" # Replace with your desired your thunder user name + password = "password" # # Replace with your password + } -If you wish to work on the provider, you'll first need [Go](http://www.golang.org) installed on your machine (version 1.11+ is *required*). You'll also need to correctly setup a [GOPATH](http://golang.org/doc/code.html#GOPATH), as well as adding `$GOPATH/bin` to your `$PATH`. + resource "thunder_router_bgp" "thunder_router_bgp" { + as_number = 101 # Replace with your desired bgp number + neighbor { + ipv4_neighbor_list { + neighbor_ipv4 = "10.1.1.104" # Replace with your desired neighbor_ipv4 address + activate = 1 # Replace with your desired activate value + nbr_remote_as = 104 # Replace with your desired nbr_remote_as value + allowas_in = 1 # Replace with your desired allowas_in value + allowas_in_count = 10 # Replace with your desired allowas_in_count value + graceful_restart = 1 # Replace with your desired graceful_restart value + } + } + } -To compile the provider, run `make build`. This will build the provider and put the provider binary in the `$GOPATH/bin` directory. + ``` + Adjust the BGP configuration parameters as needed. -```sh -$ make bin -... -$ $GOPATH/bin/terraform-provider-thunder -... +## How to execute TTP Configuration from Terraform CLI + +To apply the Thunder Terraform configurations using Terraform CLI, perform the following steps: + +1. Go to your required Terraform configuration script directory from the command prompt. + +2. If the Terraform Provider is not initialize, run the following command to initialize the working directory and download the A10 Networks Terraform Thunder Provider. +``` +terraform init ``` -In order to test the provider, you can simply run `make test`. +If Terraform Provider is already initialize with an older version, run the following command to upgrade the Terraform Provider to the latest version: -```sh -$ make test +``` +terraform init -upgrade ``` -In order to run the full suite of Acceptance tests, run `make testacc`. +3. Create an execution plan and ensure that it matches your desired configurations. -*Note:* Acceptance tests create real resources, and often cost money to run. +``` +terraform plan +``` + +4. Apply the specified configuration on your Thunder device. + +``` +terraform apply +``` + + +## How to execute TTP Configuration from Jenkins. + +Terraform scripts can be executed via Jenkins pipeline. + +Please refer the `/devops/jenkins/Jenkins Pipeline Configuration Guide.pdf` file to configure Jenkins pipeline. + +This comprehensive document offers step-by-step instructions and best practices for automating TTP (Thunder Terraform Provider) configurations, ensuring efficient management within your Jenkins environment. + +## How to execute TTP Configuration from Teckton. + +Terraform scripts can be executed via Tekton pipeline. + +Please refer the `/devops/tekton/Tekton Pipeline Configuration Guide.pdf` file to configure Tekton pipeline. + +This comprehensive document offers step-by-step instructions and best practices for automating TTP (Thunder Terraform Provider) configurations, ensuring efficient management within your Tekton environment. + +## How to verify on Thunder + + To verify the applied configurations, follow below steps: + + 1. SSH into the Thunder device using your username and password. + 2. Once connected, enter the following commands: + + 1. `enable` + + ![image](https://github.com/smundhe-a10/terraform-provider-thunder/assets/107971633/7e532cee-fa8e-4af7-aa50-da56a24dd4c3) + + 3. `show running-config` + + ![image](https://github.com/smundhe-a10/terraform-provider-thunder/assets/107971633/ae37e53d-c650-43f0-b71f-2416f4e5d65a) + + + +## How to contribute + +If you have created a new example, please save the Terraform file with a resource-specific name, such as "thunder_bgp.tf." + +1. Clone the repository. +2. Copy the newly created file and place it under the /examples/resource directory. +3. Create a MR against the master branch. + +### Pre-requisite + +- [Terraform](https://www.terraform.io/downloads.html) 1.0.x +- [Go](https://golang.org/doc/install) 1.16 (to build the provider plugin) + + +### How to Build The Provider ```sh -$ make testacc +$ git clone git@github.com:a10networks/terraform-provider-thunder.git +$ cd terraform-provider-thunder +$ make build ``` -## Samples -See the examples directory for various LB topologies that can be driven from this terraform provider. -## Bug Reporting and Feature Requests -Please submit bug reports and feature requests via GitHub issues. When reporting bugs, please include the Terraform script that demonstrates the bug and the command output. Stack traces will be helpful. Please ensure any sensitive information is redacted as Issues and Pull Requests are publicly viewable. +### Local Plugin Installation + +After building new provider we need to install and test the plugin. + +We need to create a new version please follow below step. + + 1. $ cd terraform-provider-thunder + 2. $ go build -o terraform-provider-thunder + 3. $ mkdir -p ~/.terraform.d/plugins/a10networks.com/a10networks/thunder/7.7.7/linux_amd64/ + 4. $ cp terraform-provider-thunder ~/.terraform.d/plugins/a10networks.com/a10networks/thunder/7.7.7/linux_amd64/ + 5. create version.tf file like: + ``` + terraform { + required_providers { + thunder = { + source = "a10networks.com/a10networks/thunder" + version = "7.7.7" + } + } + } + ``` + +If you face some dependency issue try `$ go mod tidy` or `$ go mod vendor` + +*Note:* After cloning you can also run `$ make local` to perform these above step automatically for dummy version 7.7.7 in Linux env. Else if you have already executed manual steps please ignore this. + + If raise MR request for contributing. + +## Documentation + +Terraform provider documentation is available at https://registry.terraform.io/providers/a10networks/thunder/latest/docs + +A10 Thunder AXAPI support documentation available at https://documentation.a10networks.com/docs/IaC/Terraform/thunder-terraform-provider/1-3-0/ + +## Report a Issue -## Contact -If you have a question that cannot be submitted via Github Issues, please email support@a10networks.com with "a10-terraform-provider" in the subject line. +Please raise issue in github repository. +Please include the Terraform script that demonstrates the bug and the command output and stack traces will be helpful. +## Support +Please reach out at support@a10networks.com with "a10-terraform-provider" in the subject line. \ No newline at end of file diff --git a/devops/jenkins/Jenkins Pipeline Configuration Guide.pdf b/devops/jenkins/Jenkins Pipeline Configuration Guide.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cedd81ff466a3b013b1063b9e95143f97990f3a7 GIT binary patch literal 620284 zcmb@u1yq&o)-H@927)vy-3^QGknZl5SRmb9Dk=>kB_-0`-64o{gLH#*cb$9b8@}J( z`#bxL|98A&18Y5Z%{lLDUNfFet{@^t&&0rij7VM%{vjhW5it_k7@8v^^72Ad+-#u` zVFO14OB+*&f`KX2fruG=tpt%Vur{TFT2m82lpXDzj2u<$p-?3o8%H8m)}PMdC9QyfnK+5S zf4{y`u(vT%hB|6PfQle0P*=xaj|lzxA^huyB12U??LI8y6b`GZ7~% z69cC%5s;F#BRGr$(J$4A+uJzVg5`ed_U9iEWr&KsfwhAz?9fJT5MgDA2-Mlk2&yD5 z1m;#TFmwQq{8IEU!8i~x{w_n<#DB_A%*@geY7Y^!1cw%Z8rc{_Au>>FQ^yxXOw8=; zuu%?<_D};WWJK45Y0XLNMRrs#jya#XR1K9fSBz|u`~9*Ng0Jt!=hy!b?!Q+!=3Eg1 z*OD$&1k{zZhOPfxyA7>m{pgN_WqeOSj%;+&z^xYbVyJvjc_txFC zulHLowz5>>v&c3_m~sfK4+qR!y$<1SlBy%W5k8~{iV6|q?IBDuuvP5~7H>*pCQ*hq zdB4z##fW84R%>Rj5uKb<&*n#n$_|mjPc7+0%#D@I<9rZlWtUraZLE|UHe}i^k?b5S?)1=xmk|EK#G`}3~g<~KxY!5HE@ zMGwUC+YrBu<{5CZ6UV7&c@*(mrbtrt7)T+e%e@{kna(LeD*1tyXCc8&%~=YuM^29= z_7geuKTdsEP7hxoqsUR9*6;Sd`wcCEmjrgc39mC7Pq-0}?<*(j{p;JsXt!@)-99bF zQ(G+08*4dZCQ_x-ZahXgZJsD$KsfuX&CujnBw2flNA1COjN?*T7^hH7%Qq}fF15Fg z{NskVZ=VH2cuDQfLoMLc^!IN8T$E?Q65HlF~wj@*C2`viI?=&{NHUj$s{P#Xuc>zY<$p^vY_g|e(-3*998ux+lZ3N%Q3m6 z#n1l8Ef(4S^aDo^WA08^b7$$ArVp8kd+K-l-%L)i_o2ve+?i5TIweCM3?_@GeIj)K zqU=_=09t*{W=Au^z^-jXi`jD*0`&8T)>olPE4R~J+vl^|A!iz` zjW55hZ-?G0h;gb4-*kD$oz`Nb6#lfIWY1H4fj9c_@L})`Tw3A_iJuPbPx$-Ox550# zpWyiulVL6fqU>bo2y?zFz-|8gRL;N(3fvAv$iM;m^9dng5m8Z5T44iAGedhbdLbK2 zV~D6V09-R`Q;52mwV<_w*z4d%7~ zap=F?Iz&hoB4=Z7Wnc+0G9Y65eGtrx|6d0Q3;uHuj7$7u(Enx(%>OV3vA>PszqSJ= z7+U}&=06w$^WTQ>lRNx=yq`n=WvlMl;A4b6X?~Q=@A4b5) z@~087GX5JQ_(|{nao~R;#{bj}xUGzTD@57N%FxDAR^@M1NE!npH*<8Om-xfVjSYaw z0kd-ecKA~bDmJRtW-!JCZ14{P`8Ngr`OHswYZEd3v`}55-@g5w#{LBne{JGVG!d2* zfvpGw6y{$9@aGx8$0|1Bk|MGOwva!!2@z2zVqye>1Yatf2LMI&=Q1FIP=cD80Z??K5(H!)3JWQmY;7%}RxnKX z2hIGs%70~Ye;xdPH#TrSw%;I!iTyXoVdr9j`~^AeKn{OH4inRVVQuV;zgZh2Ff|Yp zFoBUoVB-IQH$Q`df0)|8McM!46IlPYIzf9ggMS#^|HTh5{fbBa{rv|x{g)s38RPt8 zi~oX&|1^o8hyUpa{@m05t_rSyYT_T@&&>I^CRka2yZ0cVVEehyf4KKDPy?7ZBw}It z!w;~s{-zXqFdC*8Mj~cl=R_RLAXxgx5&s3j|A^K8QpC@Q?U#^&>l8fM;{5J?c5+1uK{q9q~|14{?sbMlHHFUB~Pa1x_l3AjYPi1*>SWkqoPO zomhyTk$P~-cm6hwV)ac!_=j1jSR#sXP3#RWE*Oto=#cJrZ|`3A5}+{Dvg~Zq&Ub8X z%DlP_2M6~plokB1F#;L_9Nc?k5llF^XY8no;G^+pBDcU7@c&=GSPK?Q9TWx=vXknI zMm9f}kdkuWoohbY7=wq0SI^gC^E!95vDs;VTSvz{t@3q`o%%|%A&QwJ zFs<2o2vxnF&q{Z!WCVq3u3EnBe9O26oATOUN=60`2w`n7J&K0vp}P8*+rbJs zB_-{ZJ9wb(`34%+%=lcZ{NOs z=w3fqhz%?dD|+@6EMWokfApdBY2DGNc9QqG8BjoH6m90fi_OhV`-;%k+iixlDp~y* zvhni#XK5xqaS(UoL~f_vB!R-iTwuNSZ+k>l3=J11Z5ppqtnF-VIh{8@s^!Yc%7%o7 z>ead0Eq6va>~1cTB(>fiE7T{%z=$xf@I2d(an$mAgwM%|2nVNHlJAc`z--v+FZ33% zo=R(dG~eUq+N;YqL@ZUWFf1fQx6*pL@%pGxofr8v6_dPt-^-UT)6&v{Z3Ytsd}i9( zmPPw$^y*H5fH@yf!ojT@38Rsx{Adlp0Bd_lt~+i|X^Qlg$_EDqYSplHZCvb4XtrR3QOiXs*&e->!9-gfxt?p4HEG#Z= zjO50wHL>FKw7h+I_K^S%F2?`^&FSjgiK{mG4TWqRxXeq--wSlAm8$KRW$sZR76C1W z5%6_(72kq;Ic0=_R&G8*!-YWZ>gvjSB66o%{LYNDoEC%KT+^#MJX|0jzEMI&t^DI4 zNW=RGDsa=MYh4NlUUV;_Sx?uLt7I$Li*ed5h&+OT>xZ8wkU~O2!pw&j(bgTyg7q}{ zN6J8|c-K<{U<#jj-BP|0-GY18TXOA>h=k1daxp!e%EbpL6l2eY$Qij zx>@ix+)F&;Wi%)&&T4OB{Mzb1IN+NH7?_uv@p^?jgXz*4>f9BTm8(TmKs3#rq*AQ` zm6a|T9)`o-}zEU zL?9Ne3AYL%Az>&zH~~T)Z^|cruZcRh1DUR+`jZ)D_cRLoM=x&{f*@sD`Gch3?i6-* zk^)`q^>ECB$=)I3W*kb$*0}6^T2s)jv`&nR%Q=*|1=o~YvhVMH_(O5L1j<4m0mMMd zrxY<$?_tWV;^K0WmPVE?4sMZNRFt@iib`Z@sY3>o*?vhPUEF+sL|q@sJq&jCwXKbs zPYDigHwWyCgp_nyWcah7ZzMssBoHVwzWG~3EY4X9I5?W;%V^{d@{v(^8rQu%JI359 z92}LWr>=i5VQFc3w!aKEGEr_pdmYYEueYHPk|A08FBrwd3PgV z`SuG-S0}TLJ~s_Yi%2Lag_@-q33lgaXLeh>aBwP3our*FSOJ91Ha8OwaZ>A4?E+m# z;w%9{;o;-6;HO1IL@Yd(0!wqX0Gs&U=;H&tz|!W@+C+IS38AOQB(+GF&e5>ZSuTjpFTRzSL3}U7zz#sA9!(5HxluNa2)!gXDMjs&|p>5bGNh>IX%qtop2+23 za@cR0i!)8WCQqnEz78x0t4sZ;>oKt$FqUoqL)icb; z3VN(zR}h9yJ)UUwC<2#^M$wowDlZOy4D9XgrPw-hCuU_A=+^R|7|W7W0`f7HtxSog zi_2ln3%HD>WnMxQh>7v}+=u)6c4~JTFf0neC2D?+P&zEP#>L@zYTH}<0PbbncPWtv z053lzI4QSE0>reQsxmnHHtBm0h1+HOa#P!*ZyOW6jodT@@EKaw92NE)$rP<}bM->K zp5++8Y?i2T0|B!U0dB|?H(M@|ySceJy4_zbTc>(o+Fi^M=2wgh6f=i_2cgZ~nUeIs zb#Z!HgbS`{RB^IDx(FTLiIIE0R=NA-sa@RJ9J#*!tYKSVJ(ZbOr8PbV2B}X78X6ii zB=Cd;2)fZ>RnEGe1ZbDI0!xuQ(faaqug{yVx1+;seKMx&!<4q(Xs%J1Wlimtsl!ob7dS+_xeHSdFld5M5Y6SeSm%bHP%R zo)9xfYk(wL42XI;Yj=M;kF8KYko41dc`FQ;%q*E#Q&nBRPE9 zbR-Fbghs45HnR;|tE(K)PE10=Bz^BQD6loa1joNqv-(_nnwqX!Vyb|T3UzCvQ{x}O z!R5WB7mK`~OfDTANu?-+PVclne6~^8NcK2$Xw4Bg2-O({?P_~y#|QFKEd?wZ71ZMP zy(KuftSB&ysOH5&YXD9Ng;6CYoksuA5DPaqw<%cL0964zrC&PM>Y#=1O&L3HRIMI4}eq0Lhk7tI3|mDU6TO3d$ZIpPpStt^H) zoU4-t6!aZYJ1mR!;KF?z{boTHu114YeT8qBNRymu+=nu!5 zsqbQNaL=t&P!-Kqlnt%NOVSln#bTX%i;db#YIbLRZmyOyIg3h50nI)U`J|`-jFxcS zpDL&;2I2xZ!;66wNKPVPd4zoKthqrj_7hY)9RduaByeuJ4vJ%pCE;Y zhYMWp3Ij7EA75NpDDk!Wdu4000J}A$x0h}Ik^=>2C&vNS`-7g9yByGlcu)lYgqXB zJr6#E&ucunJlkC_XNO<8e} z?+Sm7;D36vw{P0v256N6t&>P3RqVHK-+);=?#x_GyUbe6Hh2Mm0r3<7c#OS#Ah|bh z-ftzQM z9_r8Sacr3?76LpJeN35ytu4?n#)%HVGC(zf&DgoP%+@&NeoGr39;P&j=92*A?EFV+ zSZgV_^XBQ{nsV1*jq?`GcD8<_w~$av(CClVRZ2CLWTCehlyXZ0V&L!=AgDptJ)HL= z49xF;!3xZFZ8%#Q%md(-_eKBbsw&O_b!cZK+H4}HUCOsKWL);T;|U7}1_nh%#gtS- zBcr5{EWqZVIEofy1z2dRfHr^r{JCxdnBa3!V6T8YV>1~&NCs-rF6c1i;+Ha3Qc@ZO zfnLMa@nnC$!k)T-fB=9D;A`4jTVWwF(IglLbf3B$Qr8pDA#kCKCJkI?*Y{#0`6Pa? z?Wt;?n~Pb%Uj|>W0_nst8GQw~Nsl&?EbIqj*jm8fYF+y5!~C;=a$ph8{!+)iM|h|~ zfq{W>%+NrMY49K&nrex$WN|_t|3w}M8)rQadfI{>AGj|9YAa;Pml7j@Ap8#L4Ct`c zg&yrF575eYZ{BE-m;--ds0(vex_WD9%bS~YY5*@nAq}TOQ~D*w9WP(PrR$>uzVZ0i zd7ECrgY(j=_m)taH@&>I({N!OP9oZx2xKf3mIWeRvvRF2CdHIOvUZW`+S;4b#V~=J z%Y!nrp&9oL`dGB(^>yHXRQK|MOaj`pltNgyd*q9-V?}5mN1Gqil(19Q3<4CEn949dsPaOy*6!0D^&~@3Ka_gXeGB}k4P^z03|aDf+9~tzJfhA9`y1=hjl@h78fya zaLfUYk;5VyKy<9mtbr#A!{gfjz!EJkF0Q>VL&BGW_?RJK@0vlkruFMrnhSGS0wEb> z7+8G7c6t+ez=S&>dIsRB4HRB!qYp>}FlQJRCvZ7TRoQ`fbY$ZwrKR>tIgc?x_{hQ7{Dn7}paN%to{9xkpkkQe}(G@q>4y4YzHa9URZ_YNe4nwpwQ zP5VL#__TN}fQhCg0+!DKf{8A{6>t>=6vRcK#;hLOSAEw<Ams)K&6<{3Q#VR07N`R&LWX-{IdX#qyuY!%fm+_R|HfL z2D!$8{vTj)`w~wi@(wKhwM3Lc218+@duZguBsBc|dTTJ4wh$MQJu=Lw|-@jJ}8wC9B?+uo{ zQ2cK;NKGyI*BY4AN^fA($CCVghJV@EpBqU5p#p$1Rd=wDrU|rv-O#^?LorJsd1=Y` zuPy$^ssB2ooSYnReNtgyPZ~V`%h~^03K5&`BP;-gxxsSM|Kb!N2NnM3kwruRIQ&2C z4unUUL)3ggVb8aI)7+l|`s);bYRcBuwtwU3|KT*7TU*F?eFtGCIU4%6rvEzapLX__ zAbEIr{?s`tEPD|3r}h5lA$#UO-4(FOUBG4mB)cAOj+?DK7P;gCF&l|!Ah@c^^WiXO zE-LaMARqwYAvPUwu^^gm%O$?1)2%5>OYJ6zPdXih{@vxNgKt;X5NgZ`ZHSRcZjJ14^ugXx{yiNeTr7EE;SiG`gOi zbs(m71zgn5&hD>|Q-QO5!5U|`_?4Ougs?#PS-~I`RO`4#a;@S{^vfK9%>J2`E_|Yh z@cg0uE+G=wiffyG$>r+`?`||WxawE_N_;E#K{n`_NH&4P9k^%KL@6p^Tp;7gfvT9( zj;GmJcj|Zx^QieAA=OnO(zD*u%a@IvLk_l#-;le*kBmZxtw5Sa1oN|$NaQ+`_-GiH z5(f#Q0xgNu(MQsacD!s{G=wZHv~>4h4~O{Q9u9;p`R$xZd|gar95r7p{=TZTtZYxS z594oBbgDf;dgt%&4;-zu+8kiM>Z-Eg>PHK0K_HAo#Yj}XG4ZDwF$&EibV#!niOeq& z83s%Yq)G+N#8MU4#zcwFe{==&fGw1<&) z*l!=4->2x^1luW;7HP%b{d6~Z9iCzqy>TxfD}m(N#prvH0f=c}pmoW_|vD5-`!FA3I z^bEsKJUUMM9c!`dUC&-?0!j(ev+E#^h$7g@EotNGwE0NtM4DoW0K_ITOpC5~2r{0s z37mG?&zj1z1@7V_NqE=}xURmLKUTatnm&JzzmV~8x}dR`l40}3m^^oo_{wJZrCZ<1 z3KgMY=x~UC2^Nqnnqnad@FJ;U{M-QSr>Y%1jyGc+1zKHKKW?ux*s;9XESoAz_6ZCv z@w7skoy|6C2f+_5->$l$wnL=AFKr1%9x9TF~nNRm{r z#V$rLsyCV2Sj@whez+1RRpmut+rF|QiyJ^lo8JD(tAb7Z4C6N$byfhb3Bpz2TJ1sR zckyeeWGM2`+s#qG?P_oPb`H{aGEWY!rX3~+Njn{DD?AqC+AzdJUW}#*0v>63V%qs` zg=+TqBaWwzZ2*5;4g#iG?+YssNb2e7g{#ZfCM)ge{g@rw=uP+iTI3bYr?|GW9Ba*S zg41%+HqEV;^QQE)SjnBVq(g0mN&r~(UqTzlz{8_!F#}hgR4f=3ZR8*q5{%NjUa%d= zU+Xmajy(EgM}*%@xbmj2m+Bziy=J2pyE_&K9X;hx%s3*yThaULFUtbfN}5t)3hFRd z;J^c^?L`J(8ZNeLlZEf%l7_~G5;qoWyG*Mn)bwwi_?{#nO+7cy-0&cgw;IrAgGODC zqTOH}$PrG}*v#^$bCASaLPPgiRwSnVsk8;b%|(ksrj-9=sZ#0Os8 zHkv3_sFHpcfu_@Z%i9t;gcGOJ#;-QRbovdRAkuF*9j9lu9zzFx?} z0}p>0O_$)}dVw>bq8Rh2s#3nUug01bv#Zti3K%855bA6$Yf*XnLFltW~35`)1?18@y@|me{o*%NPb;@u# zye*Iaz0CDGxRs|JUHJCU0t3YBA|FLB7Y`FN?T{TB8`Xz4_>mNN#9tRmB^rs4ZT<0y zR?R3qZ$hGt9ygQQ!uJ8v#zYQ}a}*=7A3J!%H(tDF0)FAM_gQsjjTm?0(K)P68}?>V zl2{fgg}*oV&n?zY&GHUsd4pU5fq-}3p$RnPe=HN}34-RG1GVWYwH}N()*nkco7++F zuWngjkjjhS*(pzGe`e#&16efPyXJQ~+w!e>KRxk&%ghJ=s-*p~LFV;Tt;5hO4vRE* z)=zuKlS3xm-E_}vD^%PQMLg!o(M%0c(t;c3(^_L9NjFw}<>9w2Gz86NV;e9nu^?H3}S*>dH zQ|80|!NDr-7bQ*RtM}J_1EEM6kR2kds{UHBi@Ho|T^Y}2t(rO!ZskKZ&EK$aGX8GY zs}DO;u5~0)_+0zqYw)GXSNTPsq-6)!)rkY~%B@*^g`Bj52$wi5cgxESRTFxR&xgm* zS0lY>gTDa_RjeAFHv8&Ur4k>GHi^{KBUbD0Uq?o!r@bO>XpBy;gLjtKgq)w;aN|6# zG40KJTAC3W%LTn0PV&BA>sbbZfkHndPAAv)C7cnZIQH|}b}hD@t8r8AM7cHD$gcl+ zB)o-LAD%Fi`F!n+$C1k!Rzo>9Ak3gRts>sdH$lzW>n zu{T7vv*UMMPf+Htyr3UJB8P(Cf2B9+GW2*q%So;vV zja3%AV7TmCn9aE1-%&UEetmGk;he9rw89>Ex(G3e63=}`E`OX<$M`I%WpRsbtdy037)vwAEUc8|@8>hq#wpX{}E2KapZwG}o zkhq|<(vr>59!u6a8zek-tv4T$#T_+E?R%Ocw`POSU*)3RIKy{rt(zUhn^Es@Zr*>a z$>Kw!&{XizV#FQ3y>4c5a;CYt@Hl=gXg_z0A0(X9E0q{F5=f0(e}Oj0<9B~SPi4XB z_8E8@(rzPiQ$y-H5zQiSFX6^*ZpxrP=H0GTJvV$|r`)r?@7pb}YuB6ll|ofJ2DLn&LP&cE zPKDuK0s$W%kE)xM%@73v+eX8TgUYnvqE46UY3Yo1G{X6)GagIr?;2^dV#V0SGbvYNkC_UyzP-#Bz2_gEM?2w@>M-lnc5$YTU**}d z{skqX{H`y9?7&#G{|8b|&hOLXT+Mijl=1AxIs5LCCt~Gy&sFgGua1ZXsvYrFl8urA z2|d`h2Co`#u6B(3`i8XF#@t!CCd=$@ILsX{4u_cVdE^Qel`rHl_6`G%a8)zg=#KW(3sKPlTfdwNC!^2lnqP6EwK%s-dDmoi<0fizN5JcVy6c(>0T|F!y+>tDyoG0}*!fCNTy6E} z+NSD7?TyOWNt%?t_r|^?A(|*wH^*N2fyZ=B%@`IMG&^m9?Agc;yV&!0C>z_H0z{x6Fh0zV=R`!D2&?F7b3fp9!?wT<8;b>C>NRFU{dt z;RCJ>%9`CWSESzEgGe1G7$5u!cni>?1}!4KVL348S9-{a1bB?b2WG9Fqt~kwG~&mb z3lYGf7C>Ld=I+Wiu1(tns({Sk-kI61HP4bpIbwW>}Ku-7Hno4>9z9yR2@SO=44zF zxg!-vFR({z(*3g-RP|jhEEPg*Ow=}qD_hz#Y&%^s1V@TA;}8774cBU3vp@Lx57#YZN`Z{H%GcO?G{`mYD=<7msmqVF^*O5S*SQ0f9`l%-gVN z=dC|8VWlzS`q4yU%yka0qt`1vT*SkDj-8u5j@dLcXiY4)X=>!Rj?wJ;}uOu8@T- z-YorkMd+Y%XIbB*X~KOb9!Gv^#C4&UVzEL6k7`{yZ){e_B_m_dvplEMpME23R^>RI zJjM9jX{B2rj$P7h^aV6=qHTS+klpj$kMzLAPZ){?`2y(GQB!5}BP#^;lU}=SnU6p| zF%t;!bcg}|=Ct(7+)iNm4g~>Mu|aC)%0ZI8&1uEhJwi~_ps5eA*WAKe<^WlCkS(-# zaL_I>4p@Q-Qu(Xs$?1=6vK^`cUak^psaBLOw8Kt53{418!l-Ac?(+8 zsEsv~PZo1Is~ntU4IgC68!zTy)KhMAI$R!?9^8=WU9PrOU+mGs7ixx{uzw2+(`^hfw2J*J0vL8`r8|GX` zH8ocpDNRNT<7IFs`9ERpI@_K90B!r;tXNuW~!tYOru_n_1~#|HtRz2`NvZ3 zDoP>CrG|wZ9y%&3E0g(wo|ur39*`bAQzc{#(eakT^u!42n4kPkG^{mK1oLBv?>hsDYql#lP3KAgwi=<28J zvn2sdjKNMSr2(>if_3M^D5OR<`GWUC6cpR{Sx^meAK20F(?J9@xb0BZy5DTSr-~I? z@u6)7+6(Oh}wAUaYNiuj~ zyzGh;D-!iSFOSZ`VuQs>JH6b7r(QB*f;4mD{$mB-lyjA2>6>?YpX*z5j#x;{Qnm3@$;e~g-tkO0zNRsM6E zo0p`w3>ZNB*8>C4=>$t#%V~gG5XijvP=E$NM7Isd9jdI{+zp)9@$r*|jo0V62A~hI z5rk*lEg+)h0IgW}ZgCxfC9laWXX@NwQ#=3_`AN{R_~`bVB`{<{^n1O>$tOOKsRy7w zd$hazU3~ZO@Nj>Bp8}M`PtVV#?t6QCgT{kfZ$MW2>f+=c+9NzpSW)o#?cRG?M`*X1 zTT?;aoD@&M`w}#ZQ9b~@S^zr`$rHda!68i_7#J9UP-XRgXlN)FtyB>i7e*8%2uQGSOP$&u^iO z%e;(kl4nQ%OuHL>bms+gc zdCKd$%kf6g_pTSH;~&3y1%Ho(1Mk@n&_@K2;T-)OlxTtXggmGRg)M*|C_(^EYC-8b zsvp$!K|w_ww7JT^&CWIheHT$sD#edqkpq!;Wu|Mkp`JR&xZ7m!lcqhk`Gc=dzKG_L z5xwh667cf}mjsQllY@B&i7W?HvFWudEJ3jlnEKY{CMewcAKc2k*NdIN%Nb*9J}>hn z!0!Mxle||cp^VedPHGXU{Xy6PVGMl1BOSUbXItv|&X%|DHXg+gGsx&$3p3O7T;HGQtX!jz&;`0L?xi@^=Tw2x_z9qN3A{ zK7{FQ?O}w%G`33^=;(S4p0VJ5M@L74>V9HkPo@75caB3;%R+=ae{;UPSJaAh zWU%8B<}qW3jtp&FRfj?m%8C)iKIZ`y^<`2k1e=heuouDhLxjHOVH~C^s>j0{&e%t9 zNnXiKW1G|M4r53iw%$6k`5thEC_Ox4YUVaL6_Pw4MuMW$vuu$?q4>cwKuIZ}MwUzp zax+=~<3JFj_#~~dmjc>o13kTHBFkBN=Ja0Lz03@Mwjp1(s{)ylzQ-rpAFMGQ`yQPq9!ew~6SMMd@TGw*A|`%;8dj-T^h{bm5x@2IFhzkF$b zD-gaaO7MFAQo-wqH-No~N}HRu$NGR$PK=IXSImM!E})4ch5C&E@<7osN3)b7^2^{L zdS*d&wOd;tR!B$)G7{3^(NRcnu#AjMcX#(^a?V^uhN6;^l8TCo;^J)3GX*k~@vLV1 zwnK?n=oDzF8@e;>uD(&KNj$yFRy9M)9(4yP=v;uP{7 z9Ty!tfz{uY^{I#_PqDWT;Sh%%XRhJLK7EK*45V**j%onr(>$;)y8BAaHq8$GapKm zG%h5lz>eCGzlc3Yzm9WUAFEq!>dVN_;iE4hr@Q0k^?P|8_B~N zEy=c0&K!KK+Y?t_QIhwrwiCE4MKR%MKaa-+?fchIn^*5L2ioDKt}-$*zWKh#07NBQ zzm2fQpt?pdcLGD>4cSP@ZUOZRK^_ zUjprVCAC4Rz0Rq}I0;N>eMXhdqr2bN<@i=7 zE>+>pY}if}=XZ%Bd3n5N?r!@u!^2ZUt<4VSpB_Sns<)F%umV}R#uQaP$-Haqg16R? z*{4^)KnMtQjgF@6xmcFK96O3YeJD+$sFxuA;6${ zKrBE_ochxUjYwk)Z+Eq~cB|1K(n>^C>7?hB?@ZG1FW|EY_ zufulJj|_jjou;Fzx;<6@n3iks>(Ymou!Ew)NC-5%!x;VvqQZINr8p7{@FM8lxXo%xNU+D0j8A zsPX!-leQ0Ab`EA>BoxlpX)ZB*BVD;FsaUHk&tTgiQGWJ{ii6_>yc9u&nEd3evK6TO zWoKtYFNJ5G_QwSvui zDkpG@QO`gh2zLp8UH@ey3xMu zmh@~)ugdloG3ZCqm6SmutgxQeioRNA4j9Dyd`{H`UK+^;{q|Il#~Qhc=%R7q!ZK-T z>N1y?q5Ax!9u2n%*7^*|9KP})7@0~Oa6mK1S> zo$wu7qe(vb9=uxOwAUYxpRZ*?_Bl|`RG#jfO@>cCt#&hJy>B zl?(d+?jx*%ejm`P!_UQ49qiM>lS*%P$fW$vEbTsum(#k2RtNcdPjj}kO5Z2Gy=q`; zARqu8m93_nQ7Sa)=%URN2?=--n2Dm!&a1unn5sk)Gcz+jS4T1V`Sj5!_}r|-#0H>| z5kT$7L_QC8esM7|=gseEr65|F1ik&>#iTV0wQs25dwcq~$U!qW`(Z#Y$(?YCH;@HW z;JqjFG+8{i`;&!Z@f;`=aa!XY#i>slA^Du9B&v#srW39?-#W7Ig?fGAWe$<(me5_!_udg_+u zzF8tgeD3We=4DSMrLXZ{6l1bLYxF#emw$9@tfYFq=h+7-%&8R+$xH432$32FeSNn1 zSodu~E3^gzq4Ebj(DrQpvEFw6HZn#MAP=WwMwGH~Z^*&RXLID89UTGhB*{BRMxtiu z?TC#=XJ+_mX&;sXY;Ly%-a-1{BQ{C|m6c#BS>R`)u<<2CH$54tj4z`Kq{%U#IQw7X zM!&5iq>L`RTC>?pN?xo?h^;ysKGBxrvE*8$@@EwC)cQm}VLbPF#3UDw0IEXqglh(hbR?nBs5RyQ||>tfNJjWtA+)BMhEY3{Sv?p@IzGey~9} zTV#L|x&``!4f7^;S1lBlfr?@_s>$q@%dO=Crv0!0qU0(l3OX&lm+JEAC^ zOipoar*UkB$DY~?!+T`A4=-`EGNQXaL6jt1xh!%qRx#u&PU~OfmFK1@e)Vn0bxJQr zIGpS3it^j64n`DhL=Aqe1zB2cj6%wO(huTKSa@}9+Pz;J4R!JADm={EmV|wU{j|$K zGq2{6R{6w9*68$1e;LlEgct7lISQHi&Gi-NWHld5>j1~?qO3{x!%iO%mjowoWG9>o0d!D+Z_{cLhaK4ayG_Cf_`Ha1!nUZ`Qsdl462Q zs))+V{S1jx@e_q%VF1q;eUsu|cKylvGD9U3P@Ogf$&)H+(8=iM=a*Z!KrTfRE+Q_z zxZ(p4+CI=EJ2}Mcuvn1+o&1!-xy-BkGlSg&yXyAW%3p+7C}fbxWoh=MW@4Wi1c3Kx z=!$yc$pd$s)%*?EyprB0>lR<_?@i08$gCu5Z*#KPti7xiH&kFXMb5WE@GW*P^ z4!(6+WvwW3P@>%xu}%!vdUiYZwva?qA|lFg!|A8b2=bqqyw?k9PCy{f2buwTwWcgG<`fd)B4BR3$fBiU;Uz zBOlOaNi*&R>?btP(!D*>xIW)b$BHPq^H@SoE;KW972JS_g>A3^cb?P3!vl1-M|mAe zJ*JmU4GRS5a^#&Nh7ughN6bXcmB=dV#WPGESn)u=)C5@lT{FZ3kAgSx-tLKc+Ur_g1%b?C$E+)*Pd6Vz9WGM z%ehv)lQ~7|TRZ8RJuYZ((86GTpERWx-(b(f)kNQV+)g@G#W?kh@j5{^fcN1Eo~lnq z-}I^aDR;I~HO-uPIJy%SI=S*@J-V`Dk@(RBz6x@(8{5aHsHon48&?TKS-d2Q9X%_A zWWpB%=1i?qlidR@*9`}S-@m&R?&xVTQG3`9ech_x-LI?To$`R_H`IZw0_fL?@@kcO zoDUM4Z}xKnX!_-cd4i?7PcYub4-)!Z3hq$Cx;KUIXlZIv-$ z#)m*~Ig+c6;v%Ys(ME;EDwTp+7G(dnWz}3JeP?ag;aWuk31M5W$MW4sl_^rC<<(*&8~9OZ02h4|K8E7 z@}nTeMnTWLH3R1ob*^0!bIgp=ke(EM#8dCHx3`ZP`uUHdeb+{)w>tAdXX%&@g<^V; z1lhu*x`Oc=@D2{K3o7DUDvB8ODXE86fRDbikD(eY;$6fiGe?*Q{iRa&U;OA{eXJlg z2Yb&5yusn?>uXoa?Rm;rvA4gUQY(?JRP%UC1p`DkcidS(&lGq)iHn595HyZBBJtm; zGU>swguRGYLoVcd)14&X16p-X5y3m2;LSBUc}dA+0~3=K7r|1a_D9|OS5^y?OdfMh zx417rQ@luDPtO)U%B*$^nUr=vZ@`Cib4udXUq~6ie};Si%sU0~(15|L^u>*U9NFt_ zw`>W_R5HeZL2Op(l%+tOSi_rTajZ84#%22Qz(FRX9xq&kSlDLB$l)YDR-!6MyUfV60|D>-*^uQAGm zW=+EjLbECcCNy_vee62^rB{6;rXTz%c^LSfmK=+SZdWG@;Jbeu6&Z;o-s5yo*DLUg zmQ-0o$HnEbnqURQNLvRan!uX~=JMc$^I-6fnp=B;WB)Ph`4g%O)`@a*vtTczh^&%V zl93gkHPO@G^UL*I+KVziZHjq;vR2h({<^*6B0vFc&{#^ZiX^A$O};g+^!8QPgY6Jr z8pXHnp@SIra2^~V+j60yMVy!VylHD~8r#U`45$$^Pq_||zqW5P@V#88v$TL9qN6vMLbOJ9k(+ARbb4IPWrhZ5I(*ueIf2wgvZkV zhq||bs&ZfVMllcp1p`n(Kx zbN08t@0@$?xcAQC8p|n@cfRqDCw_s{_l9}Ese>qRK8J$cmaHWZyN!6&^Yi5ZBKPYE zSup3u)Msz+758ts|A!34S zh5qfm&wj-5h9@eA78$zgKX4+E9-_Fj21jGagh|8_fSTTg39;MU^=SUr5rTC__Wi_g`jq-l(BD>yDskm%PINr)a zy=2lb-%qF6J?d0@e4W7U4f;s;+dicsHU1P4VO0TSVgua|A&vMAm{Ft)LDXT{BbOm6 zJfVzR?O$WTcBC={H%Vp2-!2M=tEW7*I!by&b!~zj(Jp>-$l^`W z_p8(Us2>eBdG3dWrpV7z)V%Q#dnjV@G-^KnV-i>I1Pw~LEx)wp&v@6NtV+o%30RIl zsE%p&@lVvOUKo0C{tA5g>(jR}i`?3>|^UB+HOA)38yvS5&-Lw7Wel z=KBPOmVQM#@eo6==5?fRC=NuBLuceP`JaR_W~QY=`w3;hvYyV-# zNcdco@QQyZJ8}V^?7$Tj`M^*VyMV_E^OmH&Mbxqw(bc5kUt%#{T0LZ6QRge5^L90+ zEbOG5HS+(p$s%k>yn4y3R?IgVNcVGI`V6@;l+mWEt%>juQq838%eq7^NsJeAsT))E zrWO{3q2y=q3sDkW)7X)GraaVvcDR>A^{dFYi|1aH?`0FUO46iME4g!5yn%G8n1 z=N4mh%#OR;ZiH)vWH9E1UfiNoUGPx07fK}uY(C&$=SePg1@xyomVta@Ng^|k& zHTzz>2QcGSU#M6wEG*<$21iEvF!8doV&xS=3jK4O1rd5>pL%;Op(zOc0)RtPKXMGY z7ZDbAU#w{Zuu9om3YgoLSW4-i5!KM?Q=z1+fuglhXr88$XHv_+hH=MDbDIonC4LaA=+hF^1x zD>QbY1r!q(LgJHRgx7@Xz23`>l#Aft|RTw}rl1 zVY}1=Nb4;zD1k@Os3|6|JSbH0QqPekk&_z?A$q~V$$0>zc*uAUVY~p1@r>t1w0>VK zx){-SAK2WQh((wBx&1)5U=){l6*2`la7!-C!ks-~*z1!g*i47lVTg&!qI#jb9q-O~ zUP_Qa4+Hh6{uA~vI!*@Pz13XY6~GcT4+4m$8GF{ zVbe+Q^F&fdl&Iqx%+=?j(50#kB@))>r!ao<;%VW z7%Fp7z^BqWqlnJR$`Vbz1USjotcVl+Yuyx$W+tqIChP{&)OdK6qw$OEth=x5j3E}=~? zKfqQoG9oV(%dZ7h1D{8--@~$J@t2-F(dInOJ=$3!8tO^p#=Up1)b+^59bgd>>gtca zFF+Uj^cOJWva8&hotnik1fO$X^(LWw{5aWpPl}qF`Y;%^7&4H1qT$D3)xa6paj{?S zd&8E|)bvc@`mcl4>BbAVlSS$^%_lP_O^im}zJI&Zeae2&?b56;!7TLwaS&#cZ#M~o z_maPS&ypel7z|t$3rhtM!(nlto7sQL16nW8K*~%@(-RlJr7;SHA!zLrinfi^+OPST zsfyfMg@LmMGIw0=UAfkf zfJqAKE+9gqSfE;e;n(`lm&E@iSpSkT4uS=D$Zm=QGZlsrs8t{-v0Kkx?_oGTcLWBx zogMQm0XDYZ!ss?UPXIrBp+;H1$tQwe((?5yp&FONhB^R-U|J^=C;E`ULdk5&KkWG( zy1gDCO~S(@AtglsoWzU_ePG@P5%5ZWxM#Bjm35*fxLX44X6EK4XV8v)q67?bLDGkJ z?_TLtZE&q2eWdU+g8YjUTsFPzqZz<=ZFh1)Z5VD&u(_Gpp#prVEV_gcc`)JXy&-66 z@5N@{6UFGcJ;0%nWch7=V?*<>DqKAk8qS}JC?!*yU=BAN&Z3UL6w}C{SF6Y+!8~#B z`O5;8TypPudt2M#{)A-;LwQLD&}v~7_A9NduXlqgvHR(EEAV;w^B^PlJl*ysaEHzx zKhL|#`!!S9GHD=}Gmz?px_$!0*mjsrWf(u{S9xG?dYK z*T~k^cD)*A>$$y6n;O(s4ZEWIi?n!e-g8rYO9E}s3@0}69H3|3qG6UQZ7!tey!5K4f^id4^1p%0t)%RrHG;s;RA~zz{DYzV|$i(jJ6> zNSKZTaoK!^9vr3~1e0?&NMJ;ekH5#@fezXwJ`N}6c<7_V3i?C(WG|!|;lD;3s$?<{ z9Re`s5YzLzR8~(0i%)V8aH4PJUy>5ijH>%*9t<@ z5DN7Wp4mYidGrTtn0BpzZz1FqrgkY;N`-DoF0IVdZ^}3IWsCd(!8Uszwb2?<=+j&X zMjssI8Cyo~memSE148)BI#H02!cTC9OOPM<7Gqz&c%j_F+J~v#q?9Ly(L=JQK$7nV z0T5Ckeh`8?>89}^4f)j{7$lStbT;HT;aiU%Apd0(;9Dckg;fJaYm{gP&}_;oD}C^_ z{ocPvjf6scVpKNlTF?afIo;R@+XMZh^#K6Kopwb>KNNnzda2ej!*7+&Zo3FTtE<@9 z#JR9-ua1%Le(vbVh3*7shphCac-GXgGb%nJ*Gvsg=uY6Q0^rPHAwW7{C_VD97QSol z_#GPQottfE1TZV;=;)@bth$U@en7ny#2sLkPS)CsxkW)Y%l(0#o*wawH}uww&x(&k z3+}N}x3Z_4J%3;%5M--{ zdByEZ?!OoiFj58fzleN$Dw!H=oh(m#&kv1&CqVrMj{pfuXjp744hDuG2@tR4paMQ2 zUR+Z0=>~l~EP1uHwfs##WPpnooDBN zBoRo47^8^ozV|(+5s>|D5mZAXA`tuQ9k&T@iIQXdDz#f5WpLMvf4C~8t-$k@{T8A0 zk1sz+P?j*=5~Jhe#qn2Hb~wBSBc}D?Qa_^2aLIgN;<~d$Go6kyLe#hlu&Gl`X*=~S zyCaAJprQ{Dk>Kjnudv^L6g-0`O~Tdoy!o$-td$>sCM(R1mBFk*b@Up_b#i+8JNh1m zhK4VNMw>o=)&s6N=+Hfc$}JZPdu&wHNb2*RBFzk6AD>iVG(Kk_*+Z!G^XE?wSbm^> zrsG*&UJjZIw*b=yI3D;{B*tU_RD25g=BpIPVQ&J(hQ~I_@3=5JzSTKcUiaSg7JR~N z_5oqV6VnJ^(gmvK5KQPXUGFh;T6n)NiZR;YR+p0UB*>6h2XHumcPWoVUQw9;LHcxE z7;*ji9P*gaVCL<68NePtK0a2C2n|goc1L?4yJ?dPbWCNy7TzXiyHx{EhZ(^{5Dg72 z3WQjI@C6IrrL0#GBNI~`G?MVpHeveBr)Zwjj^64(ig;TaW@vtVO8M>p%6)e{q@<*V zh}upS?hxm{jRZ-HI}S2?^;Wg`9CkNFkd=HLAR^WgQC5CPeU}6=oAV44D4+&Sm4J!m zaX)?N@+l`-T={L|2jrV~%IqSJt6E!I^A23!Y3u3g2G{A#FkR)*e&Vqld_;&wkM+fO z^FhgEzlq;f&`?3 zl9mn*RhNJO_)DbS5U4dhW`(9f^G3AyzMhzC(+yzafBN+4sTxRb1k%Bt$$s|g)ZWI1 zzXl=W#?6NYGVhwEVcF59VYRilZ#fDW+uGU!Kv#1V2sG%Jn`?k9qHEKeRLk53+g0hm zF8w&PG64rKCP+}8sfUGz>LLdx-8;vMALyF{o_JgFapzSIgy~JHv%sfMw-|`+j58Sj zvRM9(n6E((LQfgT_|G))Y8ZKfuL#DRIiz!cPiMtb?eIxu0;;?-LjEZ+ixy; zD?ziZka_&$iy0o)LhCmHBD=qRYm4?W<>k5j{VOp%Q}Qk|#D84CEuTWDm;UR6q_y_h z!zn-HK(23^Haw6GxHTuxH1O_|HvPi@^eex=>8|JHJA$j1>8KddjmvjD*Z=s+TbJ)# zZ%%2YK8%&3NTmP$o}QdKOdo`0;Af6Vm&gA7uOF{Led~{(PhBCE`QvX7Hxa_fe;@H- zz(s{x>vfv5iLRZ-$4n_VKQ1 z@y9Yzv)@zKX}+Vc%#NXS5L;E{>Q~XQyS~KN@a5Hs{M|e`TB{b<5A+IXDZC}5-b%^~ zw?wVq@;`r8{nfQ`3$G$`KkA-s_GiPExe$HXHx!)2c6%A$e$+B)o~rZ+mZ-jd(O4Fh z9nbEOS?g$7L?@P6$EHLzF;zdmp&1d5WjbNAmlDrVv2-mjuhing*X=BoU9IVC|2>)z z#`KFj{H~vIUCgKJ8*T;p(0DAepT;oFd^J)U@lr(j7>#@F1r3X;7LsLS*Nj#Cn=rB~ z95gwhGE$;HDjLOv&K_DndS$9H&7>*uYOeY2EnDnQ zWn$%X9g#OWqt|zYatRJ1Z#<%UTJUYADXgWLM6~ae*0<<~1s+qw@u7{WWqzFWw}#Dz zRp-^WUl|`J{BXUm5LrNeQH;!FpN}2oo`yeL>70HGNlaGnlF^Y7L<6y+imvS z!>=}&%CB_4og%+-Hrl{G(Ia(9TB{cUtJ*n>0JHhj9+EOA=hy zj0$2L$M~G#K})jxp#a?}%ep=2t(@vj2fORr=+V!P4lL0IX(Z@Y5s$kbBiyYVT5`N@ zA}(0mck>=<8cFtZ#jUa`A3@`uWwdN%?Noj*yH95yUsz>PE7=t}KGd$j_Y%|LJNC$6b=#z_>B^V} z)6LD}*e{5;`V6Kv3F0lI?#PC2NWWCLhdL-%$CtK5^^-!EUT=FGe{(ME$lry}F(%jL zu1aIYPNV%CY0p8!@Q&VAEzeNK^BQY|ky^RMRY%j4l(i7fc47I17%HDzj|kF*ywGW} zrwFhY?xH<-gvh?8SUNkperr$41oTQ2YsGUaCy4eOqomXdrI)1$= z8+zueph%%&Y^5y6sk3f)kj$Ama(gaLEgR|(^c$}*evoz(J#`*U($CSWE*C<<>owlkAVk&`E0X(S6RTksb1ybHnLBUC z#liVe71HaB@_kHE#o@mG0)HfN_68kW3Tp%DEJl|bh)t87v!VBd*VA;ra zCTHk0z!Eb1?9MT{VV!pO9o`nA`BJI_)xjtCw)k@tbjR1ZA96++BL>w35XziPl}7u| zv2*J1hLd_`v*l~oi=)n2&&b?Ok#nN%V}zY(48EKQp``T5`@$`i-!T(S>wB}gGh9gU zWyM6I>oW`4s}FM6T#yVzeee69sc~r3Nr+xmzpI&NL`6xoG!j51_8}xOY0@Dq-$}$= z^UIf%jJFc3FHx~eZ3|a-ti$f3oc6eI2wN#px3guJm(OwLjJ6p!@L|4?v;KhjAQhN1uT$oq9TJnPGM1vhQuEz8E{o9<3P+2Qeizw_Yo`B@hW? zt-L?FqHOOiBCPkI+o!3cw5$3JVu@*V=|B|L+`?17v1jrtrdrnWuf*1iRk)!-a{1p6VD9HcK&gO=jWc zVQ#ZYvf;u@$L}t4T^_G;0x$k$H1#`1`E&pO(|$qR*uoU-4)pB6tc-z$7Azgum>6l< z*dH^~v(nNtKW1ZQqh(=-;Duif47!vq-4E!59y8PN{b|?5r)OtuX+bAPrywhG`5(EF zot>2}2OXV*g99xH$=m1{fEfv`u_fJ0O9u-xOP!atv_^L3W)znmVRFBn+Ws)`di*=; z_%rnT9ZCJ0lVt!WF*cURtZa<5Pgx$bFtX6Hz&myZS_ant&dJ*7o9Tm#4V;>etq~Yr z*jUl(S(?-R{ru@j*mVE?M(dTnjV)X>3ERtmd_wDg@d+(6V+(snEgkchtjx5|##aCN zx|#l}@c%n>{5RLl%KrPZS(s^Am>)C3qXN&mKW@VR-!7Z^pDz2ajvW7DZ2s+WvoJEy zf)yVlJrgZ6IOwp`GF=*1{FjI3|MqD!(6Z37{^i;Jey`&eM6u-d*K;mUAMQ!sOIPTG1h*H3G7GU3Qi=ta7(MeDIpW=Y%nN^n+hCg}s4Q{dy< zhU2^CjsaI$qOZo-1?I=7D6AqY-_dPRVm`c;e{Fa?YrsWVwRl4CP0LyE2fI`O+yJyi z0RbNGqTJYo&y5_DZ@y2^n=#BHIGb)QHOINgD@!4`&TiSx&wiDNb0KDQ$iZC{H~A%( zn^%)`Z`I~%u$??=2*&NVdIm|!b#I=c;ORUJIt=1^YtBE7#9MAlrCF=qakw5=Kq0l$ zqd4S)92HB`Nz=s`h7mdT0oBL*<*Vo43Jp=Z$F`?jSA2uCR2yflHn$M8U3B*GIX0`& z9XQ0!s!19XdL-qnOLGt#C%ws?fH z>ea5k8MY)4H1l~FHHMAy>otQ+OEL$-H68n{*^#bc`oN;#*~K>eYuA~$>mPMG)Cx8* zp-?^-xD_>ZjBBLtui!uKr;xxAk-9EJG2BAglKsk?vc)TZCBTPci#vkxOD0op?nN?^ zsqo%hi)Qv+0i@x?!;(iU9_N&{cOu^oWJTo_=*4U)6H6lD%c>auHI6Itn z4ZBTEQMo%`j3Ttor=)@|`d%}?LSTC~jmQMysUZhFZ;QX)WB#n&ZND82;dm!+(eCPx zWMN{)(PD2aMQdgd@Eo;oEPP7Uj&sYZlq*S^N$yIgo$iem2Idk zW@)g!{f?^>sM|h<*o0N5{p5*DLj&K$ZI8A=mKa6xZ2XlK=k4PejzgdD>q_5~aac34 zm9rTrhJ4n4wt5Y@1{UKZmf@ zmObpw^n@1m!EK$m9fHY^Zp+BuxASLPH|3X$IUl_G)Pw&Mlg28pL$ zX;wn&6s~({)K^iKK&c*F8x3W-qE2%5{qNnG!6bKAV6?_>+)_HnvY>+7U zlTG?0hU{2VuANfNcrs}$fJ~*dE67yQKdYKva7jw*;4%IaazxEUJ|DH<2&E?@#o=m- zM>JN^A$K&6DP)?9u#effJ9PV>UpviX(+KEDeeaWPkdYW#UA%Smk*=SSSMj)o#-qxb z`m$eNQp}rs6Iyh(b53H(Rx46XQLbRFcPtufCHfaqq{c?fQqWTO45pD#KJ-G%j3Ej( zdUR`@?IK&vr-)M5ayI&FQkKf+)drpIVukif)tejdW>C=enugF0&cj!h@6^grtLKU= z1y!AAoYe1xmC3cV_XG%f*TglS%G9^)5O^2aE*Fxo@1-_JymEaJx-5E3Fop8U@n5GD z|H+T)w|U#20o;FZie&i@u3*0nBLC_~_rI|QWBi+~@xQbN{D(Cd6F6u6-uHi>^6v=j z_iz3gi~Zfv@*i$-|G^sU&lCF}@&{vM|A$i>BP&>kUEZYsg*oJZ_6KA8Cx0*qp8kzL z*zW-7pRV)Y`GYY)wE3q&7z@}H{y$+5240w~{~=UaPeA5USix<5k&|g0_q=-`)m*;( zNxDWHv!8K>&_IKcf~f3BC>AAUh#+`dJW&aKhgDZ97b#r2S)P3^)nj+zP}uo6BX;^= z=VY?idg_2{bEn~8YANx+y2pi)>5360Hgqihco~rr7>Dxw`40Z?YU~P*S^u5a*23q5 z+tXDE9DB=CXITX9hZ%-N*7s(qBD<6{PRWe>)oYMLXL--Ih$4PfEm@jMflBS=D+%#Z zdHv(Zj}Z|Hc6N3$GX1s)2u3^@+~hve#3_#aG8qNeCLRbyZPwm8Iy+cllv4x~GUu}UlwwlZBKfcLG4Ctgp zgoKn-RMS@xo|!(|_DV%*iL6Ak)Vcw!XWYl59!Zt^I-fl`E6q7`t2kE*4fUOcojL*s zh#Ln4la46^>I@7!aQdn?s}dT_O%MKd0p^}SPUqv}Q|pB)lGYOpHS*?i`{0wwnWZIy z$K+2f3!8@};v%qUIoupAhvuY7W5V!PH;ml-X16v%ohcFw(LZ+Is!$}SKwBpp%@Js= z+_>x~!7KT8wa10Kn$!s#l?Fp+oTJTcxEu_ftS+wLs8!(*FpQU}iRrIsElKQ&g}I8| zcY9kHKQvK8+q594n=EjaXXigxU)D@#IAvRJR7gk2TwQSTw=*`nrrGHJeb|-uydTWSIVEwzKppDSZ!O8_5y0DAO*r~yHgxR@B=kJbSgp{52p z_AH(906xIP#4O0qpZxwE>}sIRuAra*EzIG_yl(ySJuh^Gt%$*4z6~btMz@nh z-g9QBz8_A%Y%f&v^DE``KiA$y)qlCF6)cyCBOPPCw0v%!^GR}dX^`CE`_H`hbM>~V zTo%=;*|g!)^_mNYSKa{0w<6UAly|7HI*XCJ;@FBXC(iD4b$2r{GF}dck4~TWo_w^P z6DkvjPrf&Gs{vsF6;)Mt;@&^*nGtr9l`ay(A>9C+lhmM+dyFMXAthqD{ z45Q|jueAH)Rcz!kr|PWYsWNOw<^m#*ZMyd;x39eF!nfqq`zc{^z}0&=N+3~fY*}qv zFlD7f!S{(4qz@u}L24NX2ZxlD6sVzqn^xak$x|u630P_WS*q9b}PbF}C*gPMMPjZhr87$%&VpQ^29yaf2dh;e!ue4Px zkbr@U?R*iL`?hab{`;)kJ@{h@SYPxO;xDM$tMWInl~WQU)s!gf;)m1BZ$})>$m-JS zrhP?0d9^lKqp!$WB7x~iTUggFid9F-OV1@BT)W&o4Rj%Q&Z`r_HMXBry6HD>$! z!DA0TJ}^AIF__i+!UkL~;PpCk8=34C!s}kp4t;=#NW#F-&cjoM_vm9!LY=P8jA&8$ z&o!60eL0FDJd%tS`PBo(DHf40QeAt7zRTEWl)RKo;IHqAAl9G@I*^3toLsZ-b-o{Z zJqeTXejCQh+tD@|Fg#ly?Lcn=5sO)8sU)D2fzI==c?M?x;GoO)ECIpDVy4~iD@Qma zG@7|p90UMBAad0LHY__kTGP1h9OVYw4(#I|9>-u4V9GLx4l ztRGko^F>(4~(UuzSE2KtMo%gd_tXPCFliW}~#+LqbEr zylxv{f*KkcX=!PoG_-8R$e-!RnlkO7EMOduF0!(k*x;%75U(`obR|%=IRYr(~+1bm4#ex+N~K(Nb2HtLBbz& z@v=Y(pi0ga(2-wQ})m|7uEy^-*g8Oakx< z{LX4qQ)j_;4$zeq?q|-qbi~Ahm>`akm7LsEDO3c2#&`xjApk5nRZcmI`o@laLy#B5 zT$UrIrse`)5ts^tOC|sT0W}noi*}?Q#p+y8G60}rP%eW*YKSGXAdJi`?ttExUSGYA z2l|rxpT2wlo{EY}PGY~>e6;uthnU1WfB%86fc3`pDEs}KnmqimdarLzB7d(mKNzow z8~Qdpxb|zobR>UFuxM(^orGi(mCls~wjTf>TS;Ic9P$I|k^NOyPzz(D>yeP8q&pEy zPWY;{M6T2emb?fU#DIwhX(#|&S!DAAyeE2v-ke$9cX1AI%`g28jXR=O2#7Lv1gbWe zkkBP@$uKW?t_h$--P;Mfqd`GvmYky*f!&dAE&CR4N0%$+r~eDSsGdh##XM%suz{p6%YZ4F}++iODL+%VfLj>o4pq z^~PM>?W;>GD3B-s$aZ#qe!z}qE-bDx3!tP8tI)7R+IDylV7lJC;R8HzSW^08TLZ8; z0lzuFuyE-MLqH&fM@>shiezG9lC7~wfE9m9kLSaBninD_&a%1=P{g#>IAMqCr23>Ye&cQ#Hkc-)F}Oz zTo!K@j{Dl_6IutH>Iw=9Dk}B>C{0664U6@2!yg5@jWvfSCznv%bKR6cfwG6OBh__v zWdtewwq787gmmME?1$xm1Wg(mnjBN5LiLnSu3JCee0Pyd;*pTMg^P>3*bAd^F#R=k z-*vD0B+V7&@#JglQM>6JZ0J_cDH2cLoQ}@&A$a{!Mym#+z zb8r}tNj^2uUl_O*Ti=+R{FI4lX{sKnq=W)=)xk1IL(o2(bSNurc{G#l+o}u|6H}N$ zb)Y=xY-q=31`6fsOUFB(MjOh^#l)AFl&ZW}isGna8QGa}J4wJ{VN_8i3?j<-yqxK^ z+}wWOM%OYjtD#Ps>}O?JM96U3L=Oq_RF`Mx_Z}Rab#+r%24637?CI_AS4>JjO|xAj79`-@@B9q$ygcddT@?Lijms z=OzI33vkcpAzr3e;$aZ=;|hL~gT)FS3aACad;uw;#r&}FaQO=j3$Bd846z3a3PaV^ z)v2k3baX|4*}L?>)VS1>2V5AKCqV#`kT()9bbPQWMU-4rBqdaxyRf(j%pBSNBzq7= zqUVc~P*E8Jc-d3mAom|nk>CcpfXC@N3JCfEaxYU_+@5DgZR(F@fGo2==b>e#<%q0; zMqE_uiN~?sJ@?&ZWaAZMb+RQI&z>a!v8~U~hlhspFSWz&G&VK{i;tb?>C9KPXQ;9q z%w@?rDBXUeFZwZ>#>S37OAIIkSw}bb-tEJb>l2JvjAniU>lKAlFW`TTO@bpLT24jq z3=No>CA2r`$jOt(UTAASe&6zIXGiZsE_${6@s$?Dth>%q5ce9HEUvDK{$#}TfBzo# zM=>TM=QZB+CtDQl9UVjc3`{Kb(yFSTrjCyH;`;hVJ&}5`u@iWm23EcxzrgC8?526W zU$!Rg#^E1Cf+}H_H(=?14k_1+hI1b3+06S|%}7xq(m7Z`hXvgvWgzGSTaOvT^BI8{n=K4Q>^^D@A= zqupyyrTB#SVsZEK^A?RN=j|5GuZ0H7u+hj(D79S~(?={UE&cTA;VUA0N~%0y8Q|Z! z^G$tj4;)-!8opkuO?lqtW3ng`D$!D7SH+qeJ32&;kcY>XX*U|x{3-Z*@|DkJk<4` zz37)L?fX)x%5B16`xE&-DYJYEu(-qr1M}4wfs>nSb$;rUm~lJ9&SrSib&tBSGCQ4= zW52sIs(a5hTKj@L=c35vJ|Tq(8HcP}b=&oJCOx5m?p!ldLPxhk-zgoL zC^qw)e^?VjWFUc)RhVCGxssGMoR=TXYQ1>#ZbphggwKcQr{+lU)d<6U5nGtg+vE}_IO@3%e6w^ zblSd6#IuIJ58jQQ(~x97 z;W8V3*FV5$OG@{h*}R}9TtRg}j8%+Qor=|PrR%wgb1f2U;Y6`ZwQ$!c!bm=KSNC>a|Y8*HsRnKZ`_ zsA`x!)9-K2eM^uPFb~5ioD_Tigp=6~Eap;oJV2dD|Ec84I1;xzSC z$QN`)qaJBX*|awR;}{qty{Pufx73xCqDVi)V*wozzA|p~Oh^_S1J~IdHXhx+dAk`H ziNM{I#GAKE3kgT7cbLD%qzl}<`Fr*;+&=Mn9Km-%EOYSowQHV`i1`e6r4R}Td`AD+ zj_S&|yGvbOF7D*+J>5`O9?&3|)!h|uYm2%XH6UY0tzx9BMnGiMFCIS$60eB81CY*t z&reHS|OJ%Wzcksr@geepVn%0Xf}n@!Q!vpQAP z&97T=_z_QheXvcJvUNm%8k$6Gv8r=^gjaRJXg2CS-GO`er-tN}dEAzZqYqeyd~TkN zKBIk42FWQZGV+YSHdHV|Lqo;AkFovM*VloWWs8G+`}RWa4#*J+6^7>azK~ey+k6XB z%@DX(*NR9;Z_U?A<)&zQd<;kP1n1tpD0gXyrj5yQYMo+q?Ta)EY81f`4_=2hGfrO* zLC9mYH=%B{>4&hZD`DBZ<#*@CvEkuYOa^UWeAl!#Vp-W`GY7M}uLh)93ZtTw%*|$OS%81 zk*O)D&6K_PuxP3-1b)EA9hne2ML40M?QMS^`FRCY|4;H@)5yvB7{zd~k5*D*?Xe$l zQ1v<}Rj-}@{>1UaH+et~1&2c*@OH^%t?jtsalOx!N|HnZ2W6IDT=^fu2cUlT;4a2) zzS^-t#TI>uUumftnm<+H57ET{r^Y8#Ed4UByU(}#u|j8YADmSPzETui=6->M8R!E_aCrUC%{#yXhjp8i9!f5m(+xGASW~f9S`~Ov=``w zcHKawg!Rl0j5 z!h3t~LH5y0iUcOZ9xjjbcvtPO{x>SY;t{5jA-<<%;|oN@i?)1&moGsGHhw7^{L!GM zae-s0c0FNhWO&%wS#$8)H9)9ug9g1q*fc+=O_rZ5GE1;BGNuYF zH+>x;J`$$Dn{BoDj&;g&n3(=h#O~cz`Ox@4N8Gu!bYETTL;F7guWMbE=@*Yoapr>Z`RqH zMv8#~OajozPhx|coB1KLfAS>7auqOsH@_a$7v|?fSex(hSrs+4*5(zdv*%u`bbWRk zlk9~YPzTd3a)EU4Q+7i`uTn3!N$PD9t&_hlY->CO=)zjyD7VOK9H+1}bpW- zxEP%z3t`+r(KRflM>+w%GsOE2+A5tBUqe4aW_tRTD{3`PYP-g>XHBr97>ze;K8O{S z5Ep++P>IOnp{pmiw@V!mXf7v50JW13*E2u#nv;=je*Ea6o+0p$gm!nkSqT=zmHV2C zib6@QP+!_VhwJ+~^vTJu4P=cd7^U?&(oZp{c=WtyecjC828z1tub<&!B$LyIBmlEYZZZ>rkcjB>ye(8CKwDAl ziWk*!{}T*K73xSYuP>I3XO%z|^=DE??F`fR*MP%8JgL9>h{Fz~AN@B2MS4X=?KlF$;^^Z2hQ9M%glSbqP~O1^tNX1?mP*?gRD#x+V~OAv$ppp zGUN^*H2q47*QUO-Q)v+>5ld!sei6mcycbO)xokGs)fHesr5<$_Jn`)TBfbKXeQ>2Q z<(G<&B4=3GZ9k7sa*$&?gYifk1?^K;Wf~j55wefVZXND7KOwCe-%Zr{h{lr?HAjG%HbHNofA#UOZ4rDZtX zdzD*lQ5ouNP+wqXW(M{zT7z$;@dv2Glnq;kgomqFStJAn^?*|OXr?mtFldlNM%h*I zsvD#t&{zZBy!jM>%>?}a^o)!l;R>MPotfg9%-xk_iJ5=(xIc}7WGj=gj$Z$@d zc^R*HRzkLHZf-7#l>Kf$J157Ql;)2fi?-2EcETTg*48Bv5kpYkXly{@m-zr~B8X;6 z{ClFrWMzE{3bGOtTT%p;j6P3r64TS4_9Q%X&M+SrILQfTgXar5%M z*{j?enqAi|YSQoAzvAKF8_#S0ih0UP*|{X1Za38zl9D~1CkIuzd16$# zqHVOn34}o017}|qcg@5>#MUofUP~-2Ai)+M8EoeKXSY*}wt$=S`bQ}GP*72sE?*JQ zqWwm+Ix-TKdt9{rYa#E~uiW|hfFD1E*{X1Zf~G1f@pnZhsw|!lxKl3FvgfV1mKyD! z9ZYw2cEVN++dFWeGqSR#p|1k9qVlqoj8NQE+q!)d-h-Vx*tirNBnrCDd0BQ3508$J z(C^0Nmp(V?=UAk~^E=8Tevq$HV~OwUw5H?pN^Cr7k|WqKxtR8D?NPXUu|t4fe=J~OArMusprGiiX&skd?3L?x3-8s~ zko{RK3)1dxmsH}fgFOk*>)qN3i+Spoq!*+0d+k7I8tEWQoP^ev>1BsC{|ICQJkE}y zu6X+T2Si{q=m#yEEjUoEb{!6mwZ|-JD=H~X*WnRz%NTq+G`@EI5<{HB3h|${PgPPB+ts`%e8pW1+xDlQAFdvP2 zY!zSOZ}zvvbVOV1d_X6A?>-itveo41a+GHMVT1Ah=Yl_ugP?W$(rBc7kQ1TF`XKwepH z?|32$Iv}`=hX+5^s_=N7zpXTTn`&x4`Sgj+a&oI?(SCB&(W_V(8d^D$YIR@)e)%%e z1Hl<)kobnYfs~jS0}HFc^{BL9=`F%*x_kck7y{&>(p)Lo{3RI$pC=yN;^p-ip@mp? zWniIhb98mMf+|PPH^}@a-XBN%vBNJdZ3X7hmsIK`1cW|Ua%bsVDZ&H8pWx#DJFg#W z#Ds(>Zy(?M`=8@dd5yEHe}DV`$-gXzQLwOl@87xgoW*9zr^V1^xr<3JZ!2=x%kJI zU3b$R>a~H*tgg;QOr)KhB1iw_%fZCb(vGI4;QM6MmF9!vWiNU^&FD%>;>)q~Hol`Q zQ})eXo)_ut>LMF@6yqBn&Wwt>R-opfrkdz+NFP?#0x{y(77`FuYNYGd=7bWo^^U>2 z9151IxE7A()zuygD9Vv?aeeLTGC8mq-uQk}kiR}^usIbtT5CU&z&RuTsi}#anc4pp z76yh^jZI)curIW1AcgX9WX;LX2UqXz@7#TzR8L7rc0NyET`elycmf4^T3RJgm4W-t zXR+hz$-|Yg!*J^Rk72bu_LA+Ez+^~C zNkP-w(<33)DK9Op`cZjk`T`5Hrq-F5gge(g$tgH2&hq8URnQSQ|Cp9OAI^KOytOPt zTG!Heu4?})J)_9-b=<^IhL}AV&VgR;nZ-Q+yH;6IFgFDB!I5vUY zHCblE-tkZglOP-g85M4w<}NQUjLNZ=_m}cOVgdr3%*>3Wq!zzk*09@RX;%Lb&CJhV zZ}T0leU_b`4s!Q1zZP(LcpOSgd6s!t=;(M?8^Q(`a&wnxX)QdFK9rW(>S_@Ttx_Z? z9uWLv{v=D$B~m27r@nqA^Eh`(j+;<8W@6g$%gZ}i8C(hokStb4B9jbHU>0GerKRBH zRMK$E%Fmyj`3$wmBQi2xO1h%U+tBxIvUPG?PDLdx&*gAL3u(Fmuft;diyspvrUxC) zeQYN!Sy_XTLN{-3k{dT(d}$%`@$xE#!U{5lTvpH6N0qYd?A@`lt8_(c1_p|)K`|>U zc#6`}t3##;EUm0{4n<(VQzxe0R-KYklD+I$N#R^kVr^6qjyC48OFr?LsI8mk@slU@ zEw2U!%fLE_l#Fe&Bf|8`l}{TRQ{~+Ds{|z_etXl&isCEfk$)ZO6@IH(c1EQHxN)Ez zCoU@HqAo8Fofjta@kekfettPIF;eB_c4U&SQ3E--&WUkqcQEXhzEOzj>sM^g8LHRL z^Kq^j;v2>7TPqkGtEt%Vw&89*)2y%8+TrD0uXg5>FOk6U zf{(AgWdWteZZ8*PDdIBHUtYat85N;Ws*LpF|Dx`#qw4CG?ZG4@KuCZjKyV1|5J+$f z?(Xiv-914Q++BjZyF+jf?hxEv4|aONckg}uM*l{S(LK6*^y5D`=WzDkYt^b*v#MqV zg%OhJ>8>OtFUTuQF-46MXtdz5*sM(h+i-EYmgXDBVZ8oMkvuxu7Z-=hT=Rsxr2!LD zirealkC!)(-Su)OHb&9vvrL;VE*O+;?|4~ku^%P5dyV|>Gx9l)v>FBZR&_w%jzR$w z$o1QgkxIb85D9eyX2?=Hn6A`k36yi)V8SjuG}FQ|0?M~k@Pq*`c*5#G z$YxfYE#A=5WM8@Ns$X0vfBD?HGq8K^#O2nyw>Mze)lk@oU;4ZsGZ9De{&VuUk=c(x zu?WWglePNBrjlNf#68=V^o+=+M&5|XiiF$zV>oFIjomFLw~IXiU>p*70ijd<7o4s* zl$0g|CH*H|s@8Y^xbDz^ot@c$0HG^KPwt)Ff6BN1?>P1U)n~qt)!Oem{__flss#!N z;Qwd+$iQ6!KQ{vr$Ww8?4#II4q<4;$q^XmE<+# zl+@+`pnmei$*xz);p9BoE!uFO?(@&wPY5AFRo9*l53fDh7ijLQxIjRY_Ki1E1 zq=#Q}UlQRG26qTQuHU#%I8wNvZssG(H~B5>FHH3R=GW*6`1)osTatEkk)okRtGLrY zT+sOUhifpo43|_?y!S(#+Z?PgR}>b$g2A6LG6NA~EO*hpR*yq?tP+RiVg#**CMY<~ zGU%U-iB@2&Q}*WJM1KYT%dfG=N3qW}`ZG|><7WSDDCcCB3YlarXDj{c>UkpbA<%=q z&lJ(>?N)@+={NKY)0LH}j1;LY;c;qeR(u5>tE#-Iv=pcpp*wG7gp#tbr&e9FJv?#_ z)rSY0iG;g7JzE?hHHd~D%iT&Zm0~A{L@pHLt$f!KwhuCYV0^ts$?!+$d)&HK$3@Iz zM^bI@;U|?r54X4TCw!|d|cTFV`B?HVaWmt7nnlcT+lfk0jWC}6rV06F;+K~j*M zBncuz1*Iv!}Q?&>$rR!?SDW!&~Iy={Gihul2 zu6t?I?c??aJ5gOuZmQ4Za97uW{_R`(?$8FH%O?O4lbNJ|&Pm@-&YC8h*Aak+_HFWU zHF4QSF*#i#k{1*sVc>N-x=>FVgOpGFv%4iq?J`&cM<}L~u0WzcO;*=(~ z&3Zs8g9QWkUN^qy#fZ>q;@<6{C*8m>oy9il1~X4xQjEt}3CJQbYhFu>q=j*$YnFID zaDVZMbJ?yp>#-Fvv>JK|SQMIW$Bf{%&2LScHalUT`!Km)u4T?u?^Do~7{}UIANxIQ z2-WrnGqc}t-H!7x>$~lT@OUrU+H=N+hbN|_fU)uf>ta`)w;8)>eBJuP0SF*^Uj7av z**D}3hx`hmo>om%lyZ&Ag^sQTU31IR@!M&>cYAncW#QhQ*WbUpCkD-CZr9rfeXb*M zbjE*M9dU7`dg}Ct6`R*uoJP9aS0ivh^e`|t2OX!lG#>j3Wi*M)yY-?xZTC28Q=Xxr zqT*&{b>E*I?CT;+-6N$k+eVEcN=`_q_wtgh`%))v(4bzcUT7BOPe`;1i;PE$o$6ja z3`V@6pvc+UAY^2$=18?vl#-=5S)!t%LCx`G4~iHZU*Z{ICMEGpQ>a&w@p&iND1 zLF;;dvt`pcG-{uTi3<3d*^?=k;XptOa=MJOe)u47@hes9DE<>VkmCTnn2^KnM1hvF za@0B$7Ee3bypcfBlk)|5nrxU4$JuxqQSxE4n%%j{FA*anpA*v74XvT!_=@Q>Nrw3N zIwB#-(%bh~W0yN|EwPgJ_WONcFYhnZH+|Oam>$U>`x#C|cCpVcJkt!|0I3*ISmoOV za}-6zs5I0$ny*bJkCyfHIWq($u()nl@9&lrLq1T&o-?x+f}J^LnG+BcTK8DRTS-nB4^hd zD(rQcnQj}zB4|~$N12Ul`)@*XGesn9rj2&w?p_3;pez2An}JW9Q47zW@g}O@dlyv% zGk5HiVGiN_I7CJ zI$Bv>Pqn1PCIeyIB~V5M%4^Zk7=h-ZsX?Zm$8^kB2J^<3G@*7O92Zl__(d8GohP~_ znut-ZqoX>5o*1H-`S8y27j;YFlDp{Gcz6pXONovxmtT9b#JE&cAU4xLN2_m1MvN#K zPR$V8Qh2lF+e7+mvh#7nZwYUXN#)>jZ0UpfKw*kqNHoEA>gpU(!NVM5wg7yqh` zfWd%iZh<|kq1;qbKya^ygV=DUX-?;OCEE1@r(AuMQ;1DLp({&likuzH(lNQYaJLx% zBDRSh82K4OYyhVpHZjZ2aM`SNaJnMZ*Qd}?Q;Ug;GBV=z{aBWW1AOu=Xr$DW#8B&zlnn zRO)R)@k%(3J8W$#0ZJT9ZRt46rpM(R&CC6`w{$q&0-e*SKVyO}5@(e0+*g*V+;?Fg zUhY8xY^c^EQeBHJTRbc+78}JNxKfJv+aMhW3h>n}5(=d)e$5Nk#Wy&zSKc`O_bacu z5zeWtz5V^-Fp_K`A!}>_IM&FLDzLa8m(n?=++5}5lOQ_%efh;&p=_=f>FX8w1-ob0 zueFvwC{3N7gzc?vq9?`0nOu`>Y>1iIOvj+2MqSO| zPZ23GQO)RDEi6=mEW$lOgOAFy=(16{PQzwQ-`56aovCl|^O6Lst839|3iCt9#2>5& zNRzi9^oVwzQ0e~91x5cKVXyxOzb0>0kZpp|9!;UEJOJy-lR{oizqQVu9cVG^lV6ea z4~P_(el)L;A$t>bUR?B5sKls1w?BX9(6LoDEfU;Xi&<#x*|a?GJ0j=oO1-{Mg$cIRX8S_~gr`_QRUbI%Y;D zYZV3t1d8=uolnx3YGJ;8JCeLcBBB|$wl1QXS$J=02HeEcM>o+-lzcRu$qrXoQgdMd z0*pImXPt;xGUxE}>z1;oPqv;vpk~>d5W6*_+bK}Of%iK~iM#-cjs4`CWGlMCBZz+c z)|lV{WbgkCWOxA5{@@DV0HFQN;Ya}U0ZjAp^Q-;lM!HkjFS9OPY3(+WV86WWZzdoX3ka-G_$oRxWe`=ALjGVDC=3(;< zkCPLBPV$IR;X>0KNXwsC;&r>NcXpD1IuQ}6VYAQ|@7~%wJj4RCZ4U=7_$QGuG4$3e znop?07c3~-US_^DUSp?b|=urUIhzm|>d>8##&e*R?K$D4QrUdh~}BI4o? z$LOCl{NB{X#byY^SE3s5!$9Ypih-d%KVOt9h6Vw0l@go5Av2@J6((hnVe^JHp?nw! zeiIm?dd^F5eN5(^$=xFzj*vox^_FzhaF!3zZf;p00>zUthAj*8!Z}&H3|cLa1e$`P zqDap5VbEIDe;2(P7eajlKQm)Tvk_>y-OQ*`cVf4W8so_Wjv?*l-#2#+M1(tk9wMMh z??-HX8!l;M(^sZ91fumQZg=;)^}st)HIP~axPnabR(G|lD3;E(|Go89>Dbk=98jO0 z?L#&Ma>=(x?K|!Mp_EdfL!di>5nD{Gf9;!COyPW^v#Y&*6^BL$t7EZ*{+a}Yg^1{M zoI=R}db&vmCdym_y3X?+l7j;>nR)~c{wJ<-qh$O&YsG$oL(s8 zkiuqP@9nK8EF8x{c|)z$EXaDZ55*0duRotVULB%Rn(ck7FU6WnEm&8)vxDUvfYV{u zOHXfIq`p^cooYT`3u-UE7(fAuDv@%lAU`gl(qaQ+pwKr2l5ZS(T{!5mpZcnL^3bVE z!M<2DDl}hzcw~_7zT0t6&rqdmqn{-zW5V;(YTB zQ;X{*TcNt~=EjDOUPWOqb1)bjM&*CKS7E&5_GwQ0dCC zwo17-wQP(@oo!@AA~N4I7(RWeQ+zE3jo2h!Brs$2Y2EwN_0BHRI9f&W;b^@+7rXl1 z4cEStsB<-7mig$Z83XlioxjRByrF{s92 zJQ~ZU5m(-+{n2c;(tNh^P#=F?8k9OPrH;mh@+7<#u}}-LOBfJe)0@$?^t`%&BJtti z;4Hb>0ugdCiCy5Xo2^%?S5{=}5Hd!bcE*iW>Iy+c&i>2{>q!*oR%#leUU$_6+3S1}r1!>W4q&jK-zay0ExwuHqV{hrVLq)}xwo8ity`d228I-;FvtniCjxS=mb( zbD0eo(0U{2@-Dl zh#+`)iNY0|sLi$t=)JDc)P(r>g==@$(r`(tDPey7qW?1E@;+gq=GG<9Q`7NN3q;yM zAt7b+=>u?zMdj>Pe@joy@lH4AKz4WdmMoDvQpf;*X6$T`pt#s@y{EbPek{k+@i=|z zuw^O!BQY_tL_EVju-A;T$K%Z_#VmzT%+Os`Wf4HCuPQl z%*>&Hsm0|!XfzsOFsK59t6w6AN)N@Qq_CPzZ(%bZ+=^Py5YDa3jIn{QN?$_5H4 zrH~KI#8gxbS%DxUfWc_;d$9=#oKqC9-cyI~7Uj_^7dy;Vr?%YMbd6->L~$Aps+M}( z#avzaOdhI5Mkjg};%GspPwp#ig8BI;1O8)@#05ci2PzfZPUjyDA>K;33+{Kbj{W#x zY~!fve{BQ$QR7%(z;8L%9_Sh)xCiHUW)))Rad)l=8de|;4IFF09Nhw0%Kv913Kc1oXGN3S*;eD*)272@+TFn0rf&4eP za(j&oFy;S$c(VWNSPjDMYHdvNa1&o}A8A1F2OW{e&hP*F1JOT}Y97hI=)lKc!xR36 zo!>nEnn&?J@5OBbobB-`W_hfg0Lma%62@&`1q$bAk-F%gtd2c!CwYLb(1)9maHzg; z0abC}2QU2}@28U~r?w<*klRo9X?}qG^e2TCa)0x?$U|%`D@HD;sM(_L7Eb7o!cWWb zypI5fgP6U?qP&7bAcb5i)_a^`86Z3GW8VFUw;VI&q%GhjXpcjBFN6B*8&aHUD4;Gb zI?68JX=z%5^$nc^IAl_2;llZRcf{696&uMPKTSy0^)I+4r>xVMB5OmyaH!7jU?r*} zEvh+Z$Wj!^*ZXw6)W(X{H!1hDB;@f9dIBDCb~5W|o~03a-e*{1)a1~C^Pl~%L^ zk{b6c^vArZh_g9lB>#*1L3HAFEYaAI@3xd?Ah#WbON-%n^Qj|?=1*4KD7$6Bd_$*v zPu&pOsw({ch_POg_3`p=Lv^G6Ew{H`=5rokHU#85ObF=qpVXB6#Q6C$zfiZ?Vx#-! zP!lF*{G=w*!v&0Fpgy8=R-)wGvvN6tc%EyfCJ{+(*$|=J`>hFO!xkSokC%pC5kvl2 zNyt*{CUMv%I?Qx@(0~tyGSo~p)t7+oYf4H=kkJ7R(u%6HlLe6z&8I^@y76`yJZ|OdazoVr z!hHRVRbz1nsoT81*g4-hUZwSfenWQ1_-6xkK5n28yzMBZDHnlFt@?QE(UZ&3IG@Z7 zjo^N}lMws*cdn!?5MHMMOK}rzUK3$m6D!_)OYuHmY?sYnYu<|@pl7bo`lp&TwMl3A z?rx~>Y-;G)YpIvU=bX;q;$N!-QE#^uXXWNP-CpGZGTY$KF9LL0CoqzoA|g`mHSBI9 zfh{NnPGSuNtYg)3yHJgL;n`8BT_%9_nZ!++sj8sQ`ZDxFn>pa&lDB03%|lCyWF0GO z`)ToFFMT4r6czXLHXN5p^%>)F8Mbo&;$~v!qAIE>_*F*Gg-1~RtBbJg?0OIC=7&3v zl1vH1cQLrZDV8OPEzCxFe1Bsi2`mUi?tjh{CGo}(1csCJ{>J+YCaxs|{#%Fj{YR`| zp^&7jjYL*LQqsw}ImhD_Fg6E$jljF@4K}u=rKfUrPsZ*P6f`)=fmt?3Q|!0$N=l%U zNDm~4Pd8=;Qkty#V{qHrK)3-7Vp!W=UVeLXfh(Uv>&eE3M?*mo?d^Ho83dXfdm_LL z1a{{Wr4u9InTC>G*I`&C)z!Uhp0kD*3NZng!c9n+KLdCxQzKbP$%9aCi!hiz3maph z5S&66#+&hT&@oi$Pi zhWjUQFtf18&k!Q_I%{YQ7poeO&4I>U_uE=q0JXO%Y!)jkUq2voq&^)3kmes2Z4ec9(Pwy_RF_?w~kaL)3ehA&SncJZWbV~`zmnV6f!Ku=SfG+p;K z)aKAkC(UjFfS2N4a9`^=77=lA))f_UKSJuXKaVP8945hNh4YC)4X$czE#G z+YbUgjrEa(1+4^5S1^DxQL#|D0YIrHuJhTdR*-CHyxvhOKRq38skd52-kmfTl^V8k z9h7|g3NTdVbic-SjcF*=@@6HlqrkI!3u$`4V^^}=7D6okMD^i0n^){?SP3y`d#zg^;8+ z6kmo)1&fM_^@=pSreRnov{SeaMt z{&E?%*19%dEpDIm?2~@@rM*mcxFj$GF38##g5K*S(CwxlT=pQ6pkjbSoCJ7NALF70o%fPVWFA9!N?vnQZIch&5aBb63&%{zP=rJ zI29Fha#Hq(Q-_0LVWonB_>K9+#m4T4F*U#Kp4TCRqX^MaOhV%3sJ*OQ=3X9_G`nm7 z%p6%CceE7Nu_~3sJOt)kT3gHSY#}MR2$pK$F0J|!tTi@`AR7SADv_k_6wEvp83nsD z4@1nqu6T)Y{zzAb~zZt8Po`;SJKGMAq=lkU7} zVFiTzh;w{1^><|xQ;&L1^ux=?tF@GN^`4%FOKNNXC@;&-?wWM)EiaQw{eE}TVh;EM zF-^@yFxZPGlhy#m8{E{}CxX(QZ1H&7?xp&3!;Ir0)Pi1NkWZ{UXH;H97<;=hpdzoLl4l0e zR##W6QUHSGN167GYa{ufka)6GPQRM{vrT~?CL+VI`_ z&@XlWN~?I5YjT{C}XkIouaa}TW)-FY{~@J?qL<6>d0nsQ^)UGl1b#zO9m5> z3==8!f)xK$ifb+T?6k8(;^3G{a#7uh+-;-yS01)Im&!7vP4|*sY`B~0 z5ht@c*HP6}xU&-79x{Bx`=l^x0ArYer<9GEz1TIm5$-;_pc@4nd6;WXh-r4loPwNO zzL`P*3GK}rVyV1>0x)_jl_Af{>Po=bJGsGd=9Ht8P?7S z5-LPkJ`s`aD2lPQF+kCSD*AX*;*;+MyUC|Wc(?a4H0<|>&=h=T3sDD$;uE9D@FC7A zZD%TRAt%T>Gp*)X1W^wgE^g?>)^WL+dcB>!goH#!r?Mag7-DpHDMS&8pL|fCBrIvY z-Z$ZK2ixDJQn3*m6{W((%&Nkz4>0St&&$+q;Odt$GaI2&z@@mkT@>aNYB^lpo?7ba zts20w+K7spxZNfnLX5WsA6DmW9^E611Dv@1IU=`~XkCit^uS?~s3;=*@iE)i-Q6qm zxc@NWHYaV(K;jx>04m z-JGb0gfz8}v)5o>IyDro*&Pe(2k|A&iZ2m*Pa#%hddj@RF)f@^T|GH=Its%5vqPu@ zIPC5rpi|wo`Q&={ut>eGxUn()c!)Vyo}D!rY-kbCSkP55d=Z1I>68XlvqW5apu0ZD zL`4myG#zEdYR2xTJ03o@x#$d3B7bFMWK`=m<9c;OKg@Z#GA891iwlUPK4;JXWKi>v z<^4&P0#b@g;LYM<9W)&;ITkn3N*dNf=P3Adfh4Dq%x@aD#QlJ zOH51^;3NUzQE8)L(*@Qq6pIne*@Nlq>>T7$D*jAMdw+8n+mpX$bHG&)n&b%FXkWvZ zsi`Tr7rx@D_Y1#x`0Ama7elA4`BZ8*(2gQk?s;U(1?j`01om}j&h_|RYm6n#IlZpe z)i0S?H*v&K;hz$EKN0yx{6^%%n-9ckKcsnIt|!?Vy@-N|*edHDzsUunsazrpvP3%P zrv)1MW1D*w7qg}%$uW|t_ro!t-ehT zxb7HOo0cAqqbfl7ja>8I?@Yei9`(g!C!SPGGt2E3-1i#~+rjO2Z^>PC_uo^=!5VIa z4)JQgRYTVh(dC$3bIgxLgl4zS?G_;8(S|6oNkPfBS0k@COY<7Ma?J2UHr-Zn>K8ay zu6pH;Q^rKyxpLv-lv16lxekoXTMGmF57(WWBdvB8ghN&6)6m~ljQt9_<-sL4Gnjyd zg$11KCx&u_SAm^!_9Z>86qk|t85WejyNkWn5+CwfLSnF1K*LUbK2qy$C)pDc>p9nOsVyZH zYKPayhs2PfR11h&HEZAs2D+o98l+tV^omTg&x*mF!9}#Fu2I2Xwi$w-(2p zOJFE9lu*j;jkCF!o34?G^M0wWf`l|0!ras|l#r`>MF9aYf)g7GNrjqUpVfi5?t+H* z)bP*#Z%~dNMMp)2ZYg$unyS?loCAOrmj(-4Q2&w=M z4Lr9hhIJ$P4*zk6TxY0cEPq3^U@FZ|R;72VnpnFkeyE!=@BLfQDN~&k$Xup~HOz!h zjKpo2N$QwM8kn=3s`WK@izSUjPbuml5+OI1ryNTn+^2JK8J7OZ3GeI=m31Y*nmFUi z`~JSDYV{#%E!M zU7>IPUfv`NbS_*EL>oR?3q|qqi5@Yklxs`sK4WKBrojHi5B)LnwgVC56)wrU&L^1(ID>7xF5-3 zaX~20W4ZTe5%a`2pl72&;4ZrH+}RJN=R%R8qyy*4e@D>qe_^J3Y7R?Bw|+)x>r$_NM9FF)qWJv1`u-sLwy0%F35iB^rdU%Q7iZmKI|W>Ce+2D? zzEvj{r6A67S})4fteQuh=qTdq7e9%yz~?LBI)8niEv5ltGO#{Ki) zc|Cr9%;fvwt$i6bbl)KGqD=F6@f1HfIR;$d2vN;OL~Z^2-`mo50p#SH{MGAzubY57 z*H@OWbG&wA?24G7vjtWXi&nMShAbKfy-oTeT%6p3X7#p>)Z4m_7rsgqyKas#hK?~p zj@d#}RyK!yEQTV64Wr>h9|)wR(mbV{_1nBPR4yH&NSvm=!hMBfB~w?$a9D|?f@>j{ zx~M35`)K{}1p4XP!v1gI+71YkPi3N|^eo~7(%G?3;apSQna8Kp6QtjGWbX8KrUY!= zpZsZ#__iD-`F6BuS>9>`aGwH!4 zp#IxRQKIK?!p&VE?Z}{+>2`?Yk4!4cCL=rdbRO+_ImM}>-gUGR#h?VxAHL?}cD$q9XXNUkwxtH6)Zd)>hvR&Hnv0@BZz1y2nR6&v^1k z(oatg`P|JJ<2&i`1V#)4@l*TZr|*yc9Hux82611;#-SW?b6s#}h_*~g3RTI?Z$pE* znb(iExrI`0iK+hN5qH5PpmK7lB|F?WJD!gGk|j6OdiAdz(ewOw7!m=J*8(3~D|a1j zRpV+_K+FjlvIaDV*iP#^bd>tACENAh7)SP?s^rwNMEEor+-gG;ty(d1luy1x3D>_b z`@`eYX$%RIv=wSmQ+7UVU1H>8TVJLnxtv_nN)C73E?Er=u%IDtuAx1h^>QjDz7;b35t#v4f;-{Ff9^Kph>B-4rLquP$ zwL!SxbJYfJ=b}cLjDjY&UMGyVV=)?n6(T<+E}SC`nI-lZ!zC;P)%#{&`Pso+ztNNv zhVwB<#LG+^CrI9j(_>s_r#t|)XcgKxvi3cG`A5mlHA)?>!_mBK($v%qz1cwPZW3fx zvg57ts?KKy;!h(ZQ%x2F3!0mm!v?Qc-l51565<6LyrZL_@D{ydH+gAE>Uc0O)TAvt zSWr6G>|P9qjMrpOrTvbY^6wL5d_Pc6zjd@63A$<$?!!{GSOk^mv0YxRwQn>vmGs9M zfdRm#(!0J}_N_8!&1FP%@>_mv0b)Rg1Y~$)vpKC_8rzZdCBEFh>gM+N`Vpu1Jl?Gp zJ{R{j!$`n1qP)lb z-Ilf+)W@d{oL!!7QL#$2YSl=d-Gm*qQPB!+x5wi^Uc{S2PbFOp!zpn3(9XdjSm1su zpc>B`i6vl>*G<2M+PJ|FN- zNm&FFf0b6hjRMt7hnKtXXnXPL~w(MU;|pJ~iSO)Wb8oE3Vv0TExfae706m&CaVZ1g)=px8G&9;|K{8$~T`$8AUG{LX~8=GteCfw27 z*c^t0f#G&cUIVc(;XC~62rS284H@yLq1rnnX3klQfa%Xjc_a=c6bI71-oY=qYC%>Qo9|uPk{poiA3<*Df zZ()hC;CUM`!27pYV@Nnc+!*tvOoG8OhGEde8*O&SpJJ^k)K>3n~oj6_v&JA)6Pdh?Hx8 zmE{#>#Y@x~Z9K!!pUeDNUT}okT^_)wkE;0;#BN2*tUHRhnAGR$juFVe!~1b7dx}|E zSU(v7gPpN>Xp}Id?Ae*F^f~O0L`B(W-=N%S5`Ag)72OWDPe;#bWN-acSc+J z6BXPrsdt#~Z#5U1Tp?IvH#xfaGq$|NgpTZkuisKqu`5Hs!If6^j9ycdlC5gCIst72 zX8_SnijyDvbr38{ysF4*XU6Z5$HNV|F-E70@zrv5k`yl zUFE}v4_46oc0z6op#P9YXv@b(MC*QcPDqU7d*l_Im={#wnyvbT0&L~FcD@7l>GjYSh7LH7qVGgUm=FB?ot&$G8@dq!QT!h~A?TIGYMbmLyb(zYZzpJ(a zm4Qc85T|F$2M6e-?kF0v@}efx^!M5q@cVAmy^}mM zg89pIL>`U_I-q`xhkj7OBJlmx-jqe@dDNDZTW(|;yH4QBGG!FUbpQM5b^ggU{(NnCq;9c#T}Ps@)qRGgF>q z5Dp0ma55QvSWYr9KqJT6r-CZI%J*Keu{i-}XYC7iQ#+I6vWyIvqHimiX&8O&#~rAo zx1OlBW%++jfZd5Ti66ka?7z7A`~FM_^4jB2^UVOz_$;XQ`%Z`HsPC;a=wivkLoT_4 zp8MiCrMP+ZYoQ}TJ2(vfCjHU9Ojy%*iS>z3T|6xQurbXD*}l+q&zY<&`if#iyYt#j z3gZpL7b&2g>SJ6_P@>3pP02GNXXejpUp23g8+$lrNqnBIhWx6L|EPS`n?pc64Jjzu z00ZmO&5WE7M`UPr^fq}{ifBi zl&%**k^+>2EvXB>=}987|NT9ilmRcczaOi_q}RBjBo?eLF9EtiYk zb#*Vkw&y6I1r9_-L!4{1+YpTNV9Jy|!I=s; z5mSEjP6g_qk!+x+?5!)yBv9D;%YaV3_W7rnSS4Y5dTBKa@!nb3>`#+g>cPPhwa%wV zh3HsV6b5q4F)43M&p;0)Y@oJz@q`tc-R0UMv|^%V7ZUl@|2J1#Ew zooPvWIzl2(F7r+plDh6-0u4eu;ER1Xm`OoNVU9Qi;rtyw%|T@&2rIAI>wnIJ&c`Zp z8U8q-*W0=5wK)25^m=&DMGa9`U-Gw=Moir)=OIyWGYx?U>JuTYU}1Gebj4jgJlYiV z9-k?1@$Xl>?L;IS?E;Vo*<4%eum6ao^}}XFjyQ0cSny+SqqHSpA{ZI%BNVq(rb~rw zZto6%kNJocm4!0m6*~x!Q$S#0Pc<4Y@L4``yyg{&LQ)Ekt+iSfZ3+unv@$6SO=-zn zZ>Q$uY?>yvn5|rGM~1Gf*zmj2boRZKWid22PhKnIeqZyf6BC}t{!iXWm4F8jiUKF@ z3s}E6nk8PZp9~D;1C-Dj58BB>3bW|sWGd=9kGtwuV)J?Dqiuy-3p287_n@{ zgoR}qBf@B5X$T96>m$UwEP6qZm=|l8Ly^dLs0QAlp?Rli*5a4|-QOnn2010An#Bl_ z5s~02VkUcLnAb6gT}{0%H*pG7Z+6+MQq0#ef?Q#nFEgHMDLiG>;mk872gYWm;byYo zqtwbAf@_O1QTe(WdzpKKo|*s^!}0lGmKV>+sNDyxZJn7%WEIkQ5QYR>4CcXaY-|Md z^>yno*`&9pg>D4TO|_MNV*8? zqTpQjHs}zNXJur>WmuT!h=`CaYi%94x>@ohwy5FC^ftb1y5s^~tvQ**F_@(UF(k@Q z8tR-ulMx9ym`xvUrC=iGdv9zUkMGGb!IDYD9L`gR;2SR2)G(#SyK8+{-*WaPHgc>@ ziYuNpIuN8f>lYd>^{g4w1JilRL{-Z52gh=@Pm&u56}A7AD_iSKdA|c<-PTt}B4)~k zKNCPpy8CgbnQ>O8A)DS^=keZ5pp5U)QEHQr>H=_Fg(LXhu!ZisieFq^*=i z1)`VG($Itkx|TZ~Qy%~7$>n1U5NNJNSJhDosaUjn-COiWBV zW8V=HJogR}xTA#Pf2COiu--P2+rmNa!-px8OxKb`LlezNMN;#v(JMZl74+B~1fcDb zgnBtHQ^p*-cqh)pgduS#R+x~Z|3)j33a84>Ew7hZLu5+_1q4=AR6EY&@t-!)&KaC; z{M-Jq56lmw{P?LWro3u0Goa-CGz6^4g+Gm1&|LM^@ zcGi6?#S?<_*p%F-+~^($XI2RcMVF;KSR}Qz5p3^ncF_i`&d+=O`2)XaM-7GF zjZp3G3kz9$0>}zxOV|%&iU#Bh@7O2Yt)IsTD!T<-W5o?67|=MVO-~hSwIG_RQX7z1 zR@$@|bS+aNF3Q8)y1$cKj^%67%y@(zET1Jrx!|lT?YCqi51DdT2 ze`tMb`;C^kl#-$(^^+<|@sI-7SL~P9^uYb4CsgvVDccC1n%~H2*Q=_iNL!p@{~aQY*7Sjc1A(-tWa@q@wCn-pHR(ujT3|Z` zx-s!rLr!D)%#X|R^RE*v-=|$qBZ(Dd)ac9F$*wZ~lvt2xL=kDiVbEm4c!;v-3lu+0 zI-0=DiEahEb~PKC3JX~hR#+eBCCa&x;K-?|&!gCRI)(In-1!IU)yaP(SLH;c7`RdW zhaIu!&eC(%tj__Z$6#VeZ7mDcCnEZbm1Xm0nHVq&hrKz+&z{)P%ElkR8&Rn!TpVCB>Jdm25tYinwToiJ52G%Ae8 zF2LUQ)hFg|nH#l`K^kXwpVd3vNRAlNT{8Kg(}7mVt8i|zJdzPdA~yK}rUM*Ghppc; zpyygGRgAz7q32sn9~FgpuYm}n5LPD7{RW9ft64IsJ2S{PJrl-cdCl&NI#7=H!;#7T zmz^Q1f+}&`2(d2=g*0_Oi+%V4pjIwl13uyAT2n~iFD37U8ph{P(Y3<5O@Ky zXQdtwhE?BdWpi`UR4aBJOn~#3sM={XVG_jnsDE0DQ>255Z$L9D2u@Gx2I0 z-t;f+@;eU?N3fHRF6It*eeDLg9i;5OK$Nt{SD#=>jv{6yak@U`A`*QG53dg7EhPwW z_kfT~W5@m*B>Zn=KRO#{cgHyyc63{R%WSn}PIl zyU5<^M?nJQ*Ts2_>8~Dw+6D?iVg1%PqPqH`f16A%Mp70J245R!*Gu!>ARX6csrrhY zwQXr5-3CTQi0LK7!Da2dl559ah8flO@ga@$I2PqHXcf`sT#I$7v0lSb<*8vbWfI#- z>n!8uwA-r9{FV-%xS`9Mjt}Nc$jCp{9a%4Wz5T=Q%fzq5MZz|Yh<^-akks<~8(=9I z;cUJ$K<)wVz!O z83Pr1Y8R`3P?xCq!G4A&Z*F4iFCrsav>T*6Yl7^_Z<+=g;5yE=5%cP$%bRumZ>vmv*!m%om; zcK&Y{O@WGmj-fpo>U+EqyRK`hV$pryPd13bzRFAbD^s4CuX%sWdye~xPRNJi*^~*} zcuHdkd5A1m27Ddevq;xWe~WnC@IzW>yFgl&9*LZ|M+k=8ZVZee4atvCm?4w+{;wUO3ib_T;gECkYB zQ>pW@BNt?_$7W_gjC{Yh`MIi6aXjIq4?E)2M7KP@eT)*1IQj)~)OC0Cd=SlXAcf%X zr(7$#K*TV#6M<# zzJn|H=PmK#k4D}a79vqu;|O$OL5N}iI_A;P6i|vnl8=w;0y3SAfs{8H*|5F|mSOa` zkFNkOt4(=HiDg8z0Tq~Y0oZr7>OD~G%Xo$O=cNv{!|wLBh*2fP!t0~KA#?MeU4 z_O=R(pim;KEmtNcs?Y1l4DNRi_dNafF@1zFTK3WmvNXVXPY!fS+Z`}Gvp&HRB>&_! z+W~nYQA16wI0KG;ETSFdZtSf5rl<#?06wm7_wS33juRgQ!pt{ok;aEjm&c%f6-;?a z<@Q`09o^Y+DrlgQ+)-cu4Cpjj(GmB&xVYpF4RE1e zXt3K(05arBfd3!p>$7%jskL5puzpEFOk4h0BlBtGCT zK_-c82-GrOoviN?e)`4`L7t{5Awl!m|DH;*&~vxQ@fbapfx!_ueD2qp*9$7Em-vG* z8nD(VFEoJZCeiE;R*{~iPcDY^yp>uUl~x&kj!TP)&89794KY| z(&XdQ)5~~SL=^BXvX!f@4&t(Cs;%~-bS_^Z(Mn+&G3DpV8e*CitkZp^u@=xFPoR<7 z{;PcULO@t(Uny(=>~^rneqjA)jUjSu!192Z0xcvnxv_%3U!=c9-Su|=)jnC&u)DJ(u;JyE&T1Ru<0lw0jZ+;%vICl`7N?Cs8$s{DfM7u~*Z$L2 z7;{20XPn&V2e4Y`1AlQk0OB3I?Td7eSP7~KEE-wPr2`pKP?Ab1?r6; zoS29*m35Uo9w#_B|9SAv!f*}pd(P_wZ%>Dr)2Bb*5)x0w&)o5TVd& zaU(V!N^7n9FrV7e;z2w7^JjYFO&6zmjh&<8Jk}T@>MxycP=e(+{U|y#jWtFKikxze zG^f)GE)gaoN$m_ENCHpV;K(c?uXAKE5ICr-sMZUVV-&%j<7-_NzfLI56<`PR7HrrD z*Y*#ziY?y<2W!U|x(~*@ssJ(wB$P#1odEx4_+pp$lLZsg>t8284bP*($b{4-2TEP|>eBLindz9_A;@_ zA#sDvLESmW+Dbo5@_RvOP11>kr7uDuC6Hc zPD`H>R0;q4XWWT$x4jIvBOK+14P2k>sj|NvOXvg#M=Q&Nd*<2iun7!a0JJOXZf_a0 zK8Qugbqyt`DI0&T_s3(FF#H->@Ps@xGf_FJweG)u0N)0RBt0;H1`FYfYMncUZ|`!# z%fBzuitzvTe>g+;_#WIJiD;D8XXXes=JJKQ#j(%!)k!H|BsQ~++H_D z@ef7r6ujHMhV)Z7C>aq{5@;{)lY%!Z1)2f5Ro<>p#t z$A)od$-G9)nCXRIhRVqpFw~+3 z;$ntRBg;K>c=sSNu2v}x?{It|cWRE4g$)-dt_PLFRXbB9U?+nQ5IbmnfPfwkU}mVD z%@+mE5kkVoClumLs%2H>M{4C=UDLTTN$j?3OVE#nM_*1A2L6?=4b(;UvqSL4!1ra% zD5<2b&cAnhW&h&?{X_Sg2d_f1N1dNoaOjV>Mpq?cjP7@hTkj`JwcSq!Tbu6A;XSX% zT|MtlZos|!9G4hd>>zJ|A%u*~Vv{rSlIwxK+;EsO3S^5vz4>_S*GC zK_%eCvU@&YAVL1h1$VYWV~vp^2pgpL_!b6ykT<5Uv_zA6{@Ugx3IcQ#!?<67-HU6J z)4h2|>y5sc8WIm4Kv1W!wmmkOzqvTjP_B@iAS3>#MhhtNk!Y_l$f5bDG>gn$MA}m? z&7r?kCh6DG^br=e*`29pr(#;RHkfD$yn}kx*23>Nn8Gb5ji^gHR$YjLJRu)o_YLTN zz7D@7q855^+g)so1yMFJyHPuRX_Kk>&f%pE#Z%1&rB4w&MuXRun?sL2A8sUhw(08Y z;}R23&&_@R4zz^PP!{-|EB5#gLPb{q1LOPPhrz28+{VU6RCO|9?cKt6sl<0bQTc&n z)&BPO(dg@}!)K-D(=OAKla=axe5s%+!l1Dcer$tn57Y?g$yY{v;8Ah#eE)s6HeX>r zm{)-)3kh!(7K!Y?k{_JEU+~ZeW;^lm@rU|)m=VA*at>GqdicIWZhKQWc>fLy9nu6! z%6)x#!6Bu$E($|7x*(*R@lZf**^?F z+}>GvoCJLPHUeCIqN8_!J_jVe^)@9XMZ|0ya(jymbYWW`?ldUG-4aq#j7N|lhkBqS z&?e01)G<_7=VV}DAi{+naVGR|Mc;baMc>lWD39DJQV!&<&XcU}VWZP=CJgoUFLWNx zT)AsG85v792>!QM9Z7gQJ@YI|&GJl$W?Dd2i_XT*ZlJ%P|6CtUjQHgI+~M}#)gA`{ z?uay7?afi-kmqfWmB&%Y(*1FK>&>3k!(|ulDsY00|MF#g^k~v+PG2wnbEG~Rp{91PNn zv!s6y64(~-XUcRYL~6SU<>VV#ukaqtZvG3K>32C|v)ZbILni2;S{P*a?8LI<(HifY`uwHg6OV#uwR@T;B?ygZ&#Q!OU z>*fF1n3PE{hn74(yXDMP;K|y#)acB3coZ*HxX+_4O-xK+-huEQc)v^@@HRSJ8Ln^S zru9ki*(e;v6m4C0?(sVeBy#Tb2H81>VPHQ-&-cTw9Y-zna=^8@!FXWLJ0 z{U~RQviVjIDIB|K`r2Z#!MT6xQ+oR6i7HImylA;(fz;&P^>xsn7e&XS-yQ1PnLSf? znc$IWb9=c#gn>_7*>82x?uRVMZ7wACT7Z-e=9vVvqQrmN=Q}TdZM&kyFQ}Y)e$>6S zyjD@^yHaVYu>dxNA$%^UTjg7ddBe|%NZ7^g z>|v#4`n{sb6kSuAslTLZ=uQS78{d_HFYX39eEdB8sM5++`i{S6whMZE9;D*3>}9JsRg?+bA$S8qVc z(`Nru;_sA#`hDh>-=ml6eHHQ;Gu_<=);CWvF^5z5ad9uQoMbI5fHODN4`2vv