diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e6f4525..7258c6b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,7 @@ stages: # 构建 - build + - dockerize - webhook build: @@ -37,6 +38,28 @@ build: - mvn clean install -Dmaven.test.skip=true - ls - echo ">>>>>>Finish Building<<<<<<" +dockerize: + stage: dockerize + tags: + - hk2 + dependencies: + - build + only: + - main + - develop + script: + - echo ">>>>>>Start Building Image<<<<<<" + - ls + - ls target + - echo $DOCKER_PASSWORD + - echo $CI_PIPELINE_ID + - docker build -t juyoutech/india_stock_market:latest . + - docker tag juyoutech/india_stock_market:latest juyoutech/india_stock_market:$CI_PIPELINE_ID + - docker tag juyoutech/india_stock_market:latest juyoutech/india_stock_market:$CI_COMMIT_BRANCH + - docker login -u juyoutech -p dckr_pat_8rg23IBA2kZMOCX4IJKApb8m5l8 + - docker push juyoutech/india_stock_market:latest + - docker push juyoutech/india_stock_market:$CI_PIPELINE_ID + - docker push juyoutech/india_stock_market:$CI_COMMIT_BRANCH webhook: stage: webhook only: @@ -46,7 +69,7 @@ webhook: - ls - apt-get update - apt-get install -y curl - - curl --max-time 30 http://43.132.212.180:11113/api/webhook/justpull?project=india_market_java\&setenv_file=alpha.sh\&publish_env=alpha\&shell=deploy-test.sh + - curl --max-time 30 http://149.88.86.7:11113/api/webhook/justpull?project=india_market_java\&setenv_file=alpha.sh\&publish_env=alpha\&shell=deploy-test.sh - echo ">>>>>>Start Deploy Finish<<<<<<" diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..361bae0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +FROM openjdk:8 + +RUN echo "deb http://archive.debian.org/debian/ stretch main contrib non-free" > /etc/apt/sources.list \ + && echo "deb-src http://archive.debian.org/debian/ stretch main contrib non-free" >> /etc/apt/sources.list \ + && echo 'Acquire::Check-Valid-Until "false";' > /etc/apt/apt.conf.d/10no-check-valid + +RUN apt-get update +#RUN apt-get install -y iputils-ping dnsutils vim net-tools --allow-unauthenticated + +WORKDIR /app + +COPY target/india_market_java.jar /app/app.jar + +COPY docker-entrypoint.sh /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-entrypoint.sh + +CMD ["docker-entrypoint.sh"] \ No newline at end of file diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100644 index 0000000..94d0ddc --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +export JAVA_OPTS="$JAVA_OPTS -XX:-OmitStackTraceInFastThrow \ + -Dspring.redis.host=$REDIS_HOST \ + -Dspring.redis.password=$REDIS_PASS \ + -Dmarket.domain=$MARKET_HOST \ + -Dspring.redis.port=$REDIS_PORT \ + -Dspring.datasource.stock-market.url=jdbc:mysql://$MYSQL_HOST:$MYSQL_PORT/$MYSQL_DB?useUnicode=true&autoReconnect=true&allowPublicKeyRetrieval=true&useSSL=true \ + -Dspring.datasource.stock-market.username=$MYSQL_USER \ + -Dspring.datasource.stock-market.password=$MYSQL_PASSWORD \ + -Dspring.datasource.stock.url=jdbc:mysql://$MYSQL_HOST:$MYSQL_PORT/$MYSQL_DB?useUnicode=true&autoReconnect=true&allowPublicKeyRetrieval=true&useSSL=true \ + -Dspring.datasource.stock.username=$MYSQL_USER \ + -Dspring.datasource.stock.password=$MYSQL_PASSWORD" + + +echo 'param:'$@ +echo 'JAVA_OPTS:'$JAVA_OPTS + +java $JAVA_OPTS -jar /app/app.jar $@ + +tail -f /dev/null \ No newline at end of file diff --git a/pom.xml b/pom.xml index a25d07d..870d991 100644 --- a/pom.xml +++ b/pom.xml @@ -264,7 +264,7 @@ nexus - https://nexus.duofu88.com/repository/maven-public/ + https://nexus.main99.com/repository/maven-public/ true diff --git a/src/main/java/cn/stock/market/domain/basic/service/StockService.java b/src/main/java/cn/stock/market/domain/basic/service/StockService.java index 3b73f96..b4b83f5 100644 --- a/src/main/java/cn/stock/market/domain/basic/service/StockService.java +++ b/src/main/java/cn/stock/market/domain/basic/service/StockService.java @@ -1,22 +1,19 @@ package cn.stock.market.domain.basic.service; -import java.io.BufferedReader; import java.io.IOException; -import java.io.InputStreamReader; import java.math.BigDecimal; -import java.net.URL; -import java.net.URLConnection; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.TimeUnit; -import javax.net.ssl.X509TrustManager; import javax.persistence.EntityExistsException; import javax.servlet.http.HttpServletRequest; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.text.StrFormatter; import cn.stock.market.dto.model.*; +import cn.stock.market.infrastructure.api.EttechchartsApis; +import cn.stock.market.infrastructure.api.GrowwInApis; +import cn.stock.market.infrastructure.api.TodayApis; import cn.stock.market.infrastructure.api.investing.IndiaIndexVo; import cn.stock.market.infrastructure.api.investing.IndiaStockVO; import cn.stock.market.infrastructure.api.investing.InvestingApis; @@ -28,16 +25,11 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.google.common.base.Stopwatch; -import okhttp3.OkHttpClient; -import okhttp3.Protocol; -import okhttp3.Request; import okhttp3.Request.Builder; import org.apache.commons.lang3.StringUtils; import cn.stock.market.infrastructure.db.po.QStockPO; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; -import org.jsoup.nodes.Element; -import org.jsoup.select.Elements; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.http.HttpEntity; @@ -62,11 +54,6 @@ import cn.stock.market.infrastructure.api.sina.vo.MarketVO; import cn.stock.market.infrastructure.api.sina.vo.MarketVOResult; import cn.stock.market.infrastructure.api.sina.vo.k.MinDataVO; import cn.stock.market.infrastructure.api.sina.vo.k.echarts.EchartsDataVO; -import cn.stock.market.utils.GetPyByChinese; -import cn.stock.market.utils.HttpClientRequest; -import cn.stock.market.utils.PropertiesUtil; -import cn.stock.market.utils.ServerResponse; -import cn.stock.market.utils.Utils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.client.RestTemplate; @@ -986,4 +973,149 @@ public class StockService { } return ServerResponse.createBySuccess(indexVoList); } + + public ServerResponse getIndexByBtoday(){ + List indexVoList = new ArrayList<>(); + try { + String exchange = "bse"; + IndiaIndexVo vo1 = new IndiaIndexVo(); + String coCode = "20558"; + JSONObject object = TodayApis.getStockDetail(exchange, coCode); + IndiaStockVO market = objToVo(object); + market.setName("BSESENSEX指数"); + vo1.setIndexVo(market); + + //获取k线图 1D 当天的数据 + String format = "S"; + String durationType = "D"; + String duration = "1"; + List kine = TodayApis.getStockKline(exchange,coCode,format,durationType,duration); + vo1.setKLine(kine); + indexVoList.add(vo1); + }catch (Exception e){ + log.error("BToday获取BSESENSEX指数数据异常,异常信息。。。。", e); + try { + GrowwInApis.requestSenSexData(indexVoList); + } catch (Exception e1) { + log.error("GrowwIn获取BSESENSEX指数数据异常,异常信息。。。。", e1); + try{ + EttechchartsApis.requestSensexData(indexVoList); + } catch (Exception e2) { + log.error("Ettechcharts获取BSESENSEX指数数据异常,异常信息。。。。", e2); + } + } + } + + try { + String exchange = "nse"; + IndiaIndexVo vo1 = new IndiaIndexVo(); + String coCode = "20559"; + JSONObject object = TodayApis.getStockDetail(exchange, coCode); + IndiaStockVO market = objToVo(object); + market.setName("NIFTY50指数"); + vo1.setIndexVo(market); + + //获取k线图 1D 当天的数据 + String format = "S"; + String durationType = "D"; + String duration = "1"; + List kine = TodayApis.getStockKline(exchange,coCode,format,durationType,duration); + vo1.setKLine(kine); + indexVoList.add(vo1); + }catch (Exception e){ + log.error("BToday获取NIFTY50指数数据异常,异常信息。。。。", e); + try { + GrowwInApis.requestNifty50Data(indexVoList); + } catch (Exception e1) { + log.error("GrowwIn获取NIFTY50指数数据异常,异常信息。。。。", e1); + try{ + EttechchartsApis.requestNifty50Data(indexVoList); + } catch (Exception e2) { + log.error("Ettechcharts获取NIFTY50指数数据异常,异常信息。。。。", e2); + } + } + } + return ServerResponse.createBySuccess(indexVoList); + + } + private IndiaStockVO objToVo(JSONObject object){ + IndiaStockVO market = new IndiaStockVO(); + if(object.containsKey("prev_close")){ + market.setClose(object.getString("prev_close")); + } + if(object.containsKey("price")){ + market.setNowPrice(object.getString("price")); + } + if(object.containsKey("perchg")){ + market.setRate(object.getString("perchg")); + } + if(object.containsKey("high_price")){ + market.setHigh(object.getString("high_price")); + } + if(object.containsKey("low_price")){ + market.setLow(object.getString("low_price")); + } + if(object.containsKey("open_price")){ + market.setOpen(object.getString("open_price")); + } + return market; +// stockListVO.setName(jsonObject.getString("companyname")); +// stockListVO.setCode(jsonObject.getString("co_code")); +// stockListVO.setSpell(jsonObject.getString("symbol")); +// stockListVO.setGid(jsonObject.getString("co_code")); +// stockListVO.setNowPrice(jsonObject.getString("price")); +// stockListVO.setHcrate(jsonObject.getBigDecimal("perchg")); +// stockListVO.setToday_max(jsonObject.getString("high_price")); +// stockListVO.setToday_min(jsonObject.getString("low_price")); +// stockListVO.setBusiness_balance(jsonObject.getString("val_traded")); +// stockListVO.setBusiness_amount(jsonObject.getString("vol_traded")); +// stockListVO.setPreclose_px(jsonObject.getString("prev_close")); +// stockListVO.setOpen_px(jsonObject.getString("open_price")); + + } + + public ServerResponse getEttechcharts(){ + List indexVoList = new ArrayList<>(); + try { + //获取详情 + String indexid = "2365"; + String exchange = "47"; + String keyName = "sensex"; + IndiaIndexVo vo1 = new IndiaIndexVo(); + JSONObject object = EttechchartsApis.getStockDetail(indexid, exchange,keyName); + IndiaStockVO market = EttechchartsApis.ettechchartsObjToVo(object); + market.setName("BSESENSEX指数"); + vo1.setIndexVo(market); + + //获取k线图 1min 当天的数据 分钟 + String scripcode = "SENSEX"; + List kine = EttechchartsApis.getStockKline(scripcode,exchange); + vo1.setKLine(kine); + indexVoList.add(vo1); + }catch (Exception e){ + log.info("获取BSESENSEX指数数据异常,异常信息{}。。。。",e.getMessage()); + } + try { + //获取详情 + String indexid = "2369"; + String exchangeid = "50"; + String keyName = "nifty"; + IndiaIndexVo vo1 = new IndiaIndexVo(); + JSONObject object = EttechchartsApis.getStockDetail(indexid, exchangeid,keyName); + IndiaStockVO market = EttechchartsApis.ettechchartsObjToVo(object); + market.setName("NIFTY50指数"); + vo1.setIndexVo(market); + + //获取k线图 1min 当天的数据 分钟 + String scripcode = "NSE+Index"; + List kine = EttechchartsApis.getStockKline(scripcode,exchangeid); + vo1.setKLine(kine); + indexVoList.add(vo1); + }catch (Exception e){ + log.info("获取NIFTY50指数数据异常,异常信息{}。。。。",e.getMessage()); + } + return ServerResponse.createBySuccess(indexVoList); + } + + } \ No newline at end of file diff --git a/src/main/java/cn/stock/market/dto/TodayStockDTO.java b/src/main/java/cn/stock/market/dto/TodayStockDTO.java new file mode 100644 index 0000000..925db12 --- /dev/null +++ b/src/main/java/cn/stock/market/dto/TodayStockDTO.java @@ -0,0 +1,18 @@ +package cn.stock.market.dto; + +import lombok.Data; + +@Data +public class TodayStockDTO { + private String stockType; + private String stockName; + private String stockUrl; + private String highPrice; + private String lowPrice; + private String lastPrice; + private String prevClosePrice; + private String change; + private String changePercent; + private String dispId; + private String scId; +} diff --git a/src/main/java/cn/stock/market/infrastructure/api/EttechchartsApis.java b/src/main/java/cn/stock/market/infrastructure/api/EttechchartsApis.java new file mode 100644 index 0000000..4e90884 --- /dev/null +++ b/src/main/java/cn/stock/market/infrastructure/api/EttechchartsApis.java @@ -0,0 +1,153 @@ +package cn.stock.market.infrastructure.api; + +import cn.stock.market.infrastructure.api.investing.IndiaIndexVo; +import cn.stock.market.infrastructure.api.investing.IndiaStockVO; +import cn.stock.market.utils.DateTimeUtil; +import cn.stock.market.utils.HttpClientRequest; +import com.ag.utils.DateUtils; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class EttechchartsApis { + + static String get(String url) { + return HttpClientRequest.doEttechchartsGet(url); + } + + //获取k线图 + public static List getStockKline(String scripcode,String exchangeid){ + String url = String.format("https://ettechcharts.indiatimes.com/ETLiveFeedChartRead/livefeeddata?scripcode=%s&exchangeid=%s&datatype=intraday&filtertype=1MIN&tagId=&firstreceivedataid=&lastreceivedataid=&directions=all&callback=serviceHit.chartResultCallback&scripcodetype=index",scripcode,exchangeid); + String str = get(url); + if(StringUtils.isBlank(str)){ + return new ArrayList(); + } + System.out.println(str); + str = str.substring(str.indexOf("(")+1,str.lastIndexOf(")")); + JSONObject object = JSON.parseObject(str); + if(!object.containsKey("query")){ + return new ArrayList(); + } + JSONObject query = object.getJSONObject("query"); + if(!query.containsKey("results")){ + return new ArrayList(); + } + JSONObject results = query.getJSONObject("results"); + if(!results.containsKey("quote")){ + return new ArrayList(); + } + JSONArray quote = results.getJSONArray("quote"); + List dataObject = new ArrayList<>(); +// JSONArray jsonArray = JSON.parseArray(quote); + for (Object obj : quote){ + JSONObject entity = (JSONObject) obj; + JSONObject jsonObject = new JSONObject(); + jsonObject.put("price",entity.getString("Adj_Close")); + jsonObject.put("upd_date",entity.getString("Date")); + dataObject.add(jsonObject); + } + return dataObject; +// return getList(object.getString("data"),1); +// return null; + } + //获取指数详情 + public static JSONObject getStockDetail(String indexid,String exchange,String keyName){ + String url = String.format("https://json.bselivefeeds.indiatimes.com/ET_Community/liveindices?outputtype=json&indexid=%s&exchange=%s&company=true&pagesize=1&sortby=percentchange&sortorder=desc&callback=objIndices.getDataCB&language=",indexid,exchange); + String str = get(url); + if(StringUtils.isBlank(str)){ + return new JSONObject(); + } + str = str.substring(str.indexOf("(")+1,str.lastIndexOf(")")); + JSONObject object = JSON.parseObject(str); + if(!object.containsKey("searchresult")){ + return new JSONObject(); + } + JSONObject query = object.getJSONObject("searchresult"); + if(!query.containsKey("index")){ + return new JSONObject(); + } + JSONObject results = query.getJSONObject("index"); + if(!results.containsKey(keyName)){ + return new JSONObject(); + } + return results.getJSONObject(keyName); + } + + public static IndiaStockVO ettechchartsObjToVo(JSONObject object) { + IndiaStockVO market = new IndiaStockVO(); + if (object.containsKey("CloseIndexValue")) { + market.setClose(object.getString("CloseIndexValue")); + } + if (object.containsKey("PercentChange")) { + market.setRate(object.getString("PercentChange")); + } + if (object.containsKey("HighIndexValue")) { + market.setHigh(object.getString("HighIndexValue")); + } + if (object.containsKey("LowIndexValue")) { + market.setLow(object.getString("LowIndexValue")); + } + if (object.containsKey("OpenIndexValue")) { + market.setOpen(object.getString("OpenIndexValue")); + } + if (object.containsKey("CurrentIndexValue")) { + market.setNowPrice(object.getString("CurrentIndexValue")); + } + if (object.containsKey("NetChange")) { + market.setNumber(object.getString("NetChange")); + } + return market; + } + + public static void requestNifty50Data(List indexVoList) { + //获取详情 + String scripcode = "NSE+Index"; + String exchangeid = "50"; + String indexid = "2369"; + String keyName = "nifty"; + IndiaIndexVo vo1 = new IndiaIndexVo(); + JSONObject object = EttechchartsApis.getStockDetail(indexid, exchangeid,keyName); + IndiaStockVO market = ettechchartsObjToVo(object); + market.setName("NIFTY50指数"); + vo1.setIndexVo(market); + + //获取k线图 1min 当天的数据 分钟 + List kine = EttechchartsApis.getStockKline(scripcode,exchangeid); + vo1.setKLine(kine); + indexVoList.add(vo1); + } + + public static void requestSensexData(List indexVoList) { + //获取详情 + String scripcode = "SENSEX"; + String indexid = "2365"; + String exchangeid = "47"; + String keyName = "sensex"; + IndiaIndexVo vo1 = new IndiaIndexVo(); + JSONObject object = EttechchartsApis.getStockDetail(indexid, exchangeid,keyName); + IndiaStockVO market = ettechchartsObjToVo(object); + market.setName("BSESENSEX指数"); + vo1.setIndexVo(market); + + //获取k线图 1min 当天的数据 分钟 + List kine = EttechchartsApis.getStockKline(scripcode,exchangeid); + vo1.setKLine(kine); + indexVoList.add(vo1); + } + + public static void main(String[] args) { + String str = "serviceHit.chartResultCallback({\"query\":{\"diagnostics\":\"\",\"parametervalues\":{\"exchangeid\":\"47\",\"companyid\":\"2809\",\"directions\":\"all\",\"datatype\":\"intraday\",\"firstreceivedataid\":\"\",\"scripcode\":\"SENSEX\",\"scripcodetype\":\"index\",\"filtertype\":\"1MIN\",\"lastreceivedataid\":\"\"},\"count\":200,\"lang\":\"en-US\",\"results\":{\"quote\":[{\"High\":\"73088.33\",\"Low\":\"73088.33\",\"Volume\":0,\"Adj_Close\":\"73088.33\",\"Close\":\"73088.33\",\"Date\":\"2024-04-19 15:32\",\"Open\":\"73088.33\"},{\"High\":\"73088.33\",\"Low\":\"73088.33\",\"Volume\":0,\"Adj_Close\":\"73088.33\",\"Close\":\"73088.33\",\"Date\":\"2024-04-19 15:31\",\"Open\":\"73088.33\"},{\"High\":\"73095.54\",\"Low\":\"73088.33\",\"Volume\":0,\"Adj_Close\":\"73088.33\",\"Close\":\"73088.33\",\"Date\":\"2024-04-19 15:30\",\"Open\":\"73095.54\"},{\"High\":\"73101.13\",\"Low\":\"73077.10\",\"Volume\":0,\"Adj_Close\":\"73095.54\",\"Close\":\"73095.54\",\"Date\":\"2024-04-19 15:29\",\"Open\":\"73080.50\"},{\"High\":\"73081.55\",\"Low\":\"73043.17\",\"Volume\":0,\"Adj_Close\":\"73075.31\",\"Close\":\"73075.31\",\"Date\":\"2024-04-19 15:28\",\"Open\":\"73045.53\"},{\"High\":\"73046.39\",\"Low\":\"73021.76\",\"Volume\":0,\"Adj_Close\":\"73034.56\",\"Close\":\"73034.56\",\"Date\":\"2024-04-19 15:27\",\"Open\":\"73027.29\"},{\"High\":\"73047.68\",\"Low\":\"73018.74\",\"Volume\":0,\"Adj_Close\":\"73024.41\",\"Close\":\"73024.41\",\"Date\":\"2024-04-19 15:26\",\"Open\":\"73044.99\"},{\"High\":\"73074.87\",\"Low\":\"73043.92\",\"Volume\":0,\"Adj_Close\":\"73043.92\",\"Close\":\"73043.92\",\"Date\":\"2024-04-19 15:25\",\"Open\":\"73067.09\"},{\"High\":\"73081.37\",\"Low\":\"73033.51\",\"Volume\":0,\"Adj_Close\":\"73067.75\",\"Close\":\"73067.75\",\"Date\":\"2024-04-19 15:24\",\"Open\":\"73066.49\"},{\"High\":\"73072.92\",\"Low\":\"73043.84\",\"Volume\":0,\"Adj_Close\":\"73060.22\",\"Close\":\"73060.22\",\"Date\":\"2024-04-19 15:23\",\"Open\":\"73069.42\"},{\"High\":\"73082.71\",\"Low\":\"73062.72\",\"Volume\":0,\"Adj_Close\":\"73076.51\",\"Close\":\"73076.51\",\"Date\":\"2024-04-19 15:22\",\"Open\":\"73081.40\"},{\"High\":\"73099.29\",\"Low\":\"73081.74\",\"Volume\":0,\"Adj_Close\":\"73088.79\",\"Close\":\"73088.79\",\"Date\":\"2024-04-19 15:21\",\"Open\":\"73090.76\"},{\"High\":\"73104.49\",\"Low\":\"73069.60\",\"Volume\":0,\"Adj_Close\":\"73091.63\",\"Close\":\"73091.63\",\"Date\":\"2024-04-19 15:20\",\"Open\":\"73090.06\"},{\"High\":\"73099.03\",\"Low\":\"73087.44\",\"Volume\":0,\"Adj_Close\":\"73089.55\",\"Close\":\"73089.55\",\"Date\":\"2024-04-19 15:19\",\"Open\":\"73095.84\"},{\"High\":\"73114.26\",\"Low\":\"73086.62\",\"Volume\":0,\"Adj_Close\":\"73102.61\",\"Close\":\"73102.61\",\"Date\":\"2024-04-19 15:18\",\"Open\":\"73094.21\"},{\"High\":\"73111.04\",\"Low\":\"73075.75\",\"Volume\":0,\"Adj_Close\":\"73075.85\",\"Close\":\"73075.85\",\"Date\":\"2024-04-19 15:17\",\"Open\":\"73109.31\"},{\"High\":\"73135.48\",\"Low\":\"73090.79\",\"Volume\":0,\"Adj_Close\":\"73104.49\",\"Close\":\"73104.49\",\"Date\":\"2024-04-19 15:16\",\"Open\":\"73125.08\"},{\"High\":\"73146.20\",\"Low\":\"73103.16\",\"Volume\":0,\"Adj_Close\":\"73123.28\",\"Close\":\"73123.28\",\"Date\":\"2024-04-19 15:15\",\"Open\":\"73103.16\"},{\"High\":\"73139.27\",\"Low\":\"73070.34\",\"Volume\":0,\"Adj_Close\":\"73137.19\",\"Close\":\"73137.19\",\"Date\":\"2024-04-19 15:14\",\"Open\":\"73070.34\"},{\"High\":\"73169.30\",\"Low\":\"73073.61\",\"Volume\":0,\"Adj_Close\":\"73075.22\",\"Close\":\"73075.22\",\"Date\":\"2024-04-19 15:13\",\"Open\":\"73160.24\"},{\"High\":\"73177.41\",\"Low\":\"73095.76\",\"Volume\":0,\"Adj_Close\":\"73156.32\",\"Close\":\"73156.32\",\"Date\":\"2024-04-19 15:12\",\"Open\":\"73097.14\"},{\"High\":\"73203.51\",\"Low\":\"73096.57\",\"Volume\":0,\"Adj_Close\":\"73096.57\",\"Close\":\"73096.57\",\"Date\":\"2024-04-19 15:11\",\"Open\":\"73203.51\"},{\"High\":\"73195.24\",\"Low\":\"73174.41\",\"Volume\":0,\"Adj_Close\":\"73195.24\",\"Close\":\"73195.24\",\"Date\":\"2024-04-19 15:10\",\"Open\":\"73186.98\"},{\"High\":\"73187.01\",\"Low\":\"73010.04\",\"Volume\":0,\"Adj_Close\":\"73186.13\",\"Close\":\"73186.13\",\"Date\":\"2024-04-19 15:09\",\"Open\":\"73013.81\"},{\"High\":\"73029.18\",\"Low\":\"72990.42\",\"Volume\":0,\"Adj_Close\":\"73012.77\",\"Close\":\"73012.77\",\"Date\":\"2024-04-19 15:08\",\"Open\":\"73029.18\"},{\"High\":\"73043.98\",\"Low\":\"73012.09\",\"Volume\":0,\"Adj_Close\":\"73032.42\",\"Close\":\"73032.42\",\"Date\":\"2024-04-19 15:07\",\"Open\":\"73043.98\"},{\"High\":\"73094.01\",\"Low\":\"73048.88\",\"Volume\":0,\"Adj_Close\":\"73048.91\",\"Close\":\"73048.91\",\"Date\":\"2024-04-19 15:06\",\"Open\":\"73084.41\"},{\"High\":\"73087.22\",\"Low\":\"73054.66\",\"Volume\":0,\"Adj_Close\":\"73082.34\",\"Close\":\"73082.34\",\"Date\":\"2024-04-19 15:05\",\"Open\":\"73065.72\"},{\"High\":\"73068.63\",\"Low\":\"72987.78\",\"Volume\":0,\"Adj_Close\":\"73065.26\",\"Close\":\"73065.26\",\"Date\":\"2024-04-19 15:04\",\"Open\":\"72997.10\"},{\"High\":\"73048.81\",\"Low\":\"72980.86\",\"Volume\":0,\"Adj_Close\":\"72996.89\",\"Close\":\"72996.89\",\"Date\":\"2024-04-19 15:03\",\"Open\":\"73048.47\"},{\"High\":\"73067.90\",\"Low\":\"73002.59\",\"Volume\":0,\"Adj_Close\":\"73063.24\",\"Close\":\"73063.24\",\"Date\":\"2024-04-19 15:02\",\"Open\":\"73009.30\"},{\"High\":\"73060.66\",\"Low\":\"72980.05\",\"Volume\":0,\"Adj_Close\":\"73000.68\",\"Close\":\"73000.68\",\"Date\":\"2024-04-19 15:01\",\"Open\":\"73015.76\"},{\"High\":\"73075.13\",\"Low\":\"73024.19\",\"Volume\":0,\"Adj_Close\":\"73024.19\",\"Close\":\"73024.19\",\"Date\":\"2024-04-19 15:00\",\"Open\":\"73075.13\"},{\"High\":\"73085.05\",\"Low\":\"73061.47\",\"Volume\":0,\"Adj_Close\":\"73062.21\",\"Close\":\"73062.21\",\"Date\":\"2024-04-19 14:59\",\"Open\":\"73067.03\"},{\"High\":\"73067.81\",\"Low\":\"73048.85\",\"Volume\":0,\"Adj_Close\":\"73064.70\",\"Close\":\"73064.70\",\"Date\":\"2024-04-19 14:58\",\"Open\":\"73067.81\"},{\"High\":\"73068.50\",\"Low\":\"73052.07\",\"Volume\":0,\"Adj_Close\":\"73062.96\",\"Close\":\"73062.96\",\"Date\":\"2024-04-19 14:57\",\"Open\":\"73055.90\"},{\"High\":\"73069.47\",\"Low\":\"72996.53\",\"Volume\":0,\"Adj_Close\":\"73055.29\",\"Close\":\"73055.29\",\"Date\":\"2024-04-19 14:56\",\"Open\":\"73011.87\"},{\"High\":\"73084.39\",\"Low\":\"72987.25\",\"Volume\":0,\"Adj_Close\":\"73004.01\",\"Close\":\"73004.01\",\"Date\":\"2024-04-19 14:55\",\"Open\":\"73084.39\"},{\"High\":\"73103.48\",\"Low\":\"73056.27\",\"Volume\":0,\"Adj_Close\":\"73092.25\",\"Close\":\"73092.25\",\"Date\":\"2024-04-19 14:54\",\"Open\":\"73056.27\"},{\"High\":\"73048.03\",\"Low\":\"73004.08\",\"Volume\":0,\"Adj_Close\":\"73048.03\",\"Close\":\"73048.03\",\"Date\":\"2024-04-19 14:53\",\"Open\":\"73024.95\"},{\"High\":\"73130.19\",\"Low\":\"73030.25\",\"Volume\":0,\"Adj_Close\":\"73030.25\",\"Close\":\"73030.25\",\"Date\":\"2024-04-19 14:52\",\"Open\":\"73126.85\"},{\"High\":\"73109.83\",\"Low\":\"73026.85\",\"Volume\":0,\"Adj_Close\":\"73109.83\",\"Close\":\"73109.83\",\"Date\":\"2024-04-19 14:51\",\"Open\":\"73034.97\"},{\"High\":\"73030.86\",\"Low\":\"72992.25\",\"Volume\":0,\"Adj_Close\":\"73030.86\",\"Close\":\"73030.86\",\"Date\":\"2024-04-19 14:50\",\"Open\":\"73007.48\"},{\"High\":\"73014.58\",\"Low\":\"72995.93\",\"Volume\":0,\"Adj_Close\":\"73007.67\",\"Close\":\"73007.67\",\"Date\":\"2024-04-19 14:49\",\"Open\":\"72996.76\"},{\"High\":\"73000.53\",\"Low\":\"72972.84\",\"Volume\":0,\"Adj_Close\":\"72997.87\",\"Close\":\"72997.87\",\"Date\":\"2024-04-19 14:48\",\"Open\":\"72984.88\"},{\"High\":\"72992.96\",\"Low\":\"72977.41\",\"Volume\":0,\"Adj_Close\":\"72985.46\",\"Close\":\"72985.46\",\"Date\":\"2024-04-19 14:47\",\"Open\":\"72984.40\"},{\"High\":\"73047.50\",\"Low\":\"72979.90\",\"Volume\":0,\"Adj_Close\":\"72981.15\",\"Close\":\"72981.15\",\"Date\":\"2024-04-19 14:46\",\"Open\":\"73045.74\"},{\"High\":\"73050.29\",\"Low\":\"72873.54\",\"Volume\":0,\"Adj_Close\":\"73050.29\",\"Close\":\"73050.29\",\"Date\":\"2024-04-19 14:45\",\"Open\":\"72886.93\"},{\"High\":\"72969.11\",\"Low\":\"72873.87\",\"Volume\":0,\"Adj_Close\":\"72896.13\",\"Close\":\"72896.13\",\"Date\":\"2024-04-19 14:44\",\"Open\":\"72969.11\"},{\"High\":\"73009.82\",\"Low\":\"72969.36\",\"Volume\":0,\"Adj_Close\":\"72974.40\",\"Close\":\"72974.40\",\"Date\":\"2024-04-19 14:43\",\"Open\":\"73006.03\"},{\"High\":\"73010.88\",\"Low\":\"72973.91\",\"Volume\":0,\"Adj_Close\":\"73007.86\",\"Close\":\"73007.86\",\"Date\":\"2024-04-19 14:42\",\"Open\":\"73003.65\"},{\"High\":\"73051.84\",\"Low\":\"73004.35\",\"Volume\":0,\"Adj_Close\":\"73004.35\",\"Close\":\"73004.35\",\"Date\":\"2024-04-19 14:41\",\"Open\":\"73046.84\"},{\"High\":\"73049.81\",\"Low\":\"73029.25\",\"Volume\":0,\"Adj_Close\":\"73042.95\",\"Close\":\"73042.95\",\"Date\":\"2024-04-19 14:40\",\"Open\":\"73032.33\"},{\"High\":\"73050.72\",\"Low\":\"73030.02\",\"Volume\":0,\"Adj_Close\":\"73034.14\",\"Close\":\"73034.14\",\"Date\":\"2024-04-19 14:39\",\"Open\":\"73050.42\"},{\"High\":\"73055.96\",\"Low\":\"73025.92\",\"Volume\":0,\"Adj_Close\":\"73055.96\",\"Close\":\"73055.96\",\"Date\":\"2024-04-19 14:38\",\"Open\":\"73044.11\"},{\"High\":\"73060.79\",\"Low\":\"73036.68\",\"Volume\":0,\"Adj_Close\":\"73043.21\",\"Close\":\"73043.21\",\"Date\":\"2024-04-19 14:37\",\"Open\":\"73049.24\"},{\"High\":\"73074.28\",\"Low\":\"73036.29\",\"Volume\":0,\"Adj_Close\":\"73044.62\",\"Close\":\"73044.62\",\"Date\":\"2024-04-19 14:36\",\"Open\":\"73071.16\"},{\"High\":\"73084.48\",\"Low\":\"73034.83\",\"Volume\":0,\"Adj_Close\":\"73072.38\",\"Close\":\"73072.38\",\"Date\":\"2024-04-19 14:35\",\"Open\":\"73039.16\"},{\"High\":\"73120.12\",\"Low\":\"73027.74\",\"Volume\":0,\"Adj_Close\":\"73030.40\",\"Close\":\"73030.40\",\"Date\":\"2024-04-19 14:34\",\"Open\":\"73116.90\"},{\"High\":\"73118.27\",\"Low\":\"73047.15\",\"Volume\":0,\"Adj_Close\":\"73118.27\",\"Close\":\"73118.27\",\"Date\":\"2024-04-19 14:33\",\"Open\":\"73047.15\"},{\"High\":\"73060.59\",\"Low\":\"73025.22\",\"Volume\":0,\"Adj_Close\":\"73047.51\",\"Close\":\"73047.51\",\"Date\":\"2024-04-19 14:32\",\"Open\":\"73025.22\"},{\"High\":\"73051.89\",\"Low\":\"73011.71\",\"Volume\":0,\"Adj_Close\":\"73037.48\",\"Close\":\"73037.48\",\"Date\":\"2024-04-19 14:31\",\"Open\":\"73011.71\"},{\"High\":\"73023.13\",\"Low\":\"72998.05\",\"Volume\":0,\"Adj_Close\":\"73011.51\",\"Close\":\"73011.51\",\"Date\":\"2024-04-19 14:30\",\"Open\":\"73008.19\"},{\"High\":\"73021.58\",\"Low\":\"72976.37\",\"Volume\":0,\"Adj_Close\":\"73007.07\",\"Close\":\"73007.07\",\"Date\":\"2024-04-19 14:29\",\"Open\":\"72977.19\"},{\"High\":\"72986.31\",\"Low\":\"72947.00\",\"Volume\":0,\"Adj_Close\":\"72971.76\",\"Close\":\"72971.76\",\"Date\":\"2024-04-19 14:28\",\"Open\":\"72986.31\"},{\"High\":\"73060.15\",\"Low\":\"72990.53\",\"Volume\":0,\"Adj_Close\":\"72990.53\",\"Close\":\"72990.53\",\"Date\":\"2024-04-19 14:27\",\"Open\":\"73045.31\"},{\"High\":\"73094.21\",\"Low\":\"73043.64\",\"Volume\":0,\"Adj_Close\":\"73053.07\",\"Close\":\"73053.07\",\"Date\":\"2024-04-19 14:26\",\"Open\":\"73068.69\"},{\"High\":\"73067.78\",\"Low\":\"72955.43\",\"Volume\":0,\"Adj_Close\":\"73067.78\",\"Close\":\"73067.78\",\"Date\":\"2024-04-19 14:25\",\"Open\":\"72967.26\"},{\"High\":\"73002.26\",\"Low\":\"72951.31\",\"Volume\":0,\"Adj_Close\":\"72964.00\",\"Close\":\"72964.00\",\"Date\":\"2024-04-19 14:24\",\"Open\":\"73002.26\"},{\"High\":\"73011.49\",\"Low\":\"72987.94\",\"Volume\":0,\"Adj_Close\":\"73001.02\",\"Close\":\"73001.02\",\"Date\":\"2024-04-19 14:23\",\"Open\":\"72987.94\"},{\"High\":\"73027.00\",\"Low\":\"72986.26\",\"Volume\":0,\"Adj_Close\":\"72990.21\",\"Close\":\"72990.21\",\"Date\":\"2024-04-19 14:22\",\"Open\":\"73026.71\"},{\"High\":\"73038.34\",\"Low\":\"73013.28\",\"Volume\":0,\"Adj_Close\":\"73030.79\",\"Close\":\"73030.79\",\"Date\":\"2024-04-19 14:21\",\"Open\":\"73020.37\"},{\"High\":\"73022.02\",\"Low\":\"73007.01\",\"Volume\":0,\"Adj_Close\":\"73021.28\",\"Close\":\"73021.28\",\"Date\":\"2024-04-19 14:20\",\"Open\":\"73019.95\"},{\"High\":\"73023.40\",\"Low\":\"73004.72\",\"Volume\":0,\"Adj_Close\":\"73020.64\",\"Close\":\"73020.64\",\"Date\":\"2024-04-19 14:19\",\"Open\":\"73015.15\"},{\"High\":\"73046.69\",\"Low\":\"73010.15\",\"Volume\":0,\"Adj_Close\":\"73010.15\",\"Close\":\"73010.15\",\"Date\":\"2024-04-19 14:18\",\"Open\":\"73025.36\"},{\"High\":\"73079.89\",\"Low\":\"73013.65\",\"Volume\":0,\"Adj_Close\":\"73021.96\",\"Close\":\"73021.96\",\"Date\":\"2024-04-19 14:17\",\"Open\":\"73079.89\"},{\"High\":\"73092.31\",\"Low\":\"72982.27\",\"Volume\":0,\"Adj_Close\":\"73090.79\",\"Close\":\"73090.79\",\"Date\":\"2024-04-19 14:16\",\"Open\":\"72984.75\"},{\"High\":\"73048.40\",\"Low\":\"72994.34\",\"Volume\":0,\"Adj_Close\":\"72994.34\",\"Close\":\"72994.34\",\"Date\":\"2024-04-19 14:15\",\"Open\":\"73045.62\"},{\"High\":\"73082.99\",\"Low\":\"73040.13\",\"Volume\":0,\"Adj_Close\":\"73049.96\",\"Close\":\"73049.96\",\"Date\":\"2024-04-19 14:14\",\"Open\":\"73074.00\"},{\"High\":\"73086.54\",\"Low\":\"73057.94\",\"Volume\":0,\"Adj_Close\":\"73077.32\",\"Close\":\"73077.32\",\"Date\":\"2024-04-19 14:13\",\"Open\":\"73086.54\"},{\"High\":\"73127.84\",\"Low\":\"73078.82\",\"Volume\":0,\"Adj_Close\":\"73087.75\",\"Close\":\"73087.75\",\"Date\":\"2024-04-19 14:12\",\"Open\":\"73127.84\"},{\"High\":\"73131.49\",\"Low\":\"73109.74\",\"Volume\":0,\"Adj_Close\":\"73130.34\",\"Close\":\"73130.34\",\"Date\":\"2024-04-19 14:11\",\"Open\":\"73124.26\"},{\"High\":\"73131.10\",\"Low\":\"73070.37\",\"Volume\":0,\"Adj_Close\":\"73124.26\",\"Close\":\"73124.26\",\"Date\":\"2024-04-19 14:10\",\"Open\":\"73087.90\"},{\"High\":\"73158.67\",\"Low\":\"73073.65\",\"Volume\":0,\"Adj_Close\":\"73080.63\",\"Close\":\"73080.63\",\"Date\":\"2024-04-19 14:09\",\"Open\":\"73158.67\"},{\"High\":\"73158.19\",\"Low\":\"73051.32\",\"Volume\":0,\"Adj_Close\":\"73157.24\",\"Close\":\"73157.24\",\"Date\":\"2024-04-19 14:08\",\"Open\":\"73051.32\"},{\"High\":\"73051.63\",\"Low\":\"72973.03\",\"Volume\":0,\"Adj_Close\":\"73051.63\",\"Close\":\"73051.63\",\"Date\":\"2024-04-19 14:07\",\"Open\":\"72985.89\"},{\"High\":\"73055.34\",\"Low\":\"72975.67\",\"Volume\":0,\"Adj_Close\":\"72976.45\",\"Close\":\"72976.45\",\"Date\":\"2024-04-19 14:06\",\"Open\":\"73054.36\"},{\"High\":\"73062.84\",\"Low\":\"72998.15\",\"Volume\":0,\"Adj_Close\":\"73050.57\",\"Close\":\"73050.57\",\"Date\":\"2024-04-19 14:05\",\"Open\":\"73001.50\"},{\"High\":\"73003.41\",\"Low\":\"72974.33\",\"Volume\":0,\"Adj_Close\":\"73000.57\",\"Close\":\"73000.57\",\"Date\":\"2024-04-19 14:04\",\"Open\":\"72985.11\"},{\"High\":\"73065.26\",\"Low\":\"72984.37\",\"Volume\":0,\"Adj_Close\":\"72985.05\",\"Close\":\"72985.05\",\"Date\":\"2024-04-19 14:03\",\"Open\":\"73063.72\"},{\"High\":\"73074.24\",\"Low\":\"73005.92\",\"Volume\":0,\"Adj_Close\":\"73064.20\",\"Close\":\"73064.20\",\"Date\":\"2024-04-19 14:02\",\"Open\":\"73005.92\"},{\"High\":\"73022.31\",\"Low\":\"72974.68\",\"Volume\":0,\"Adj_Close\":\"73009.25\",\"Close\":\"73009.25\",\"Date\":\"2024-04-19 14:01\",\"Open\":\"73005.82\"},{\"High\":\"73106.21\",\"Low\":\"73013.30\",\"Volume\":0,\"Adj_Close\":\"73014.36\",\"Close\":\"73014.36\",\"Date\":\"2024-04-19 14:00\",\"Open\":\"73052.48\"},{\"High\":\"73048.14\",\"Low\":\"72971.75\",\"Volume\":0,\"Adj_Close\":\"73047.02\",\"Close\":\"73047.02\",\"Date\":\"2024-04-19 13:59\",\"Open\":\"72979.55\"},{\"High\":\"72990.46\",\"Low\":\"72974.66\",\"Volume\":0,\"Adj_Close\":\"72981.87\",\"Close\":\"72981.87\",\"Date\":\"2024-04-19 13:58\",\"Open\":\"72979.68\"},{\"High\":\"72994.21\",\"Low\":\"72962.89\",\"Volume\":0,\"Adj_Close\":\"72978.54\",\"Close\":\"72978.54\",\"Date\":\"2024-04-19 13:57\",\"Open\":\"72994.21\"},{\"High\":\"73002.63\",\"Low\":\"72963.01\",\"Volume\":0,\"Adj_Close\":\"73002.63\",\"Close\":\"73002.63\",\"Date\":\"2024-04-19 13:56\",\"Open\":\"72965.79\"},{\"High\":\"72999.96\",\"Low\":\"72954.88\",\"Volume\":0,\"Adj_Close\":\"72965.79\",\"Close\":\"72965.79\",\"Date\":\"2024-04-19 13:55\",\"Open\":\"72992.79\"},{\"High\":\"72978.99\",\"Low\":\"72947.64\",\"Volume\":0,\"Adj_Close\":\"72978.93\",\"Close\":\"72978.93\",\"Date\":\"2024-04-19 13:54\",\"Open\":\"72955.73\"},{\"High\":\"72972.57\",\"Low\":\"72931.27\",\"Volume\":0,\"Adj_Close\":\"72958.39\",\"Close\":\"72958.39\",\"Date\":\"2024-04-19 13:53\",\"Open\":\"72948.54\"},{\"High\":\"72946.73\",\"Low\":\"72861.73\",\"Volume\":0,\"Adj_Close\":\"72946.73\",\"Close\":\"72946.73\",\"Date\":\"2024-04-19 13:52\",\"Open\":\"72865.38\"},{\"High\":\"72881.05\",\"Low\":\"72839.26\",\"Volume\":0,\"Adj_Close\":\"72875.84\",\"Close\":\"72875.84\",\"Date\":\"2024-04-19 13:51\",\"Open\":\"72839.26\"},{\"High\":\"72832.64\",\"Low\":\"72804.90\",\"Volume\":0,\"Adj_Close\":\"72831.50\",\"Close\":\"72831.50\",\"Date\":\"2024-04-19 13:50\",\"Open\":\"72804.90\"},{\"High\":\"72798.95\",\"Low\":\"72731.55\",\"Volume\":0,\"Adj_Close\":\"72797.91\",\"Close\":\"72797.91\",\"Date\":\"2024-04-19 13:49\",\"Open\":\"72733.50\"},{\"High\":\"72764.40\",\"Low\":\"72710.07\",\"Volume\":0,\"Adj_Close\":\"72728.51\",\"Close\":\"72728.51\",\"Date\":\"2024-04-19 13:48\",\"Open\":\"72742.53\"},{\"High\":\"72731.34\",\"Low\":\"72637.24\",\"Volume\":0,\"Adj_Close\":\"72731.34\",\"Close\":\"72731.34\",\"Date\":\"2024-04-19 13:47\",\"Open\":\"72637.24\"},{\"High\":\"72645.33\",\"Low\":\"72627.65\",\"Volume\":0,\"Adj_Close\":\"72636.37\",\"Close\":\"72636.37\",\"Date\":\"2024-04-19 13:46\",\"Open\":\"72629.54\"},{\"High\":\"72639.72\",\"Low\":\"72621.28\",\"Volume\":0,\"Adj_Close\":\"72637.57\",\"Close\":\"72637.57\",\"Date\":\"2024-04-19 13:45\",\"Open\":\"72635.96\"},{\"High\":\"72641.29\",\"Low\":\"72610.38\",\"Volume\":0,\"Adj_Close\":\"72641.29\",\"Close\":\"72641.29\",\"Date\":\"2024-04-19 13:44\",\"Open\":\"72615.75\"},{\"High\":\"72654.12\",\"Low\":\"72607.39\",\"Volume\":0,\"Adj_Close\":\"72609.92\",\"Close\":\"72609.92\",\"Date\":\"2024-04-19 13:43\",\"Open\":\"72607.39\"},{\"High\":\"72615.29\",\"Low\":\"72590.96\",\"Volume\":0,\"Adj_Close\":\"72608.26\",\"Close\":\"72608.26\",\"Date\":\"2024-04-19 13:42\",\"Open\":\"72609.59\"},{\"High\":\"72647.45\",\"Low\":\"72605.60\",\"Volume\":0,\"Adj_Close\":\"72605.60\",\"Close\":\"72605.60\",\"Date\":\"2024-04-19 13:41\",\"Open\":\"72625.95\"},{\"High\":\"72648.39\",\"Low\":\"72621.65\",\"Volume\":0,\"Adj_Close\":\"72625.14\",\"Close\":\"72625.14\",\"Date\":\"2024-04-19 13:40\",\"Open\":\"72648.39\"},{\"High\":\"72660.07\",\"Low\":\"72634.42\",\"Volume\":0,\"Adj_Close\":\"72647.70\",\"Close\":\"72647.70\",\"Date\":\"2024-04-19 13:39\",\"Open\":\"72648.19\"},{\"High\":\"72658.99\",\"Low\":\"72625.54\",\"Volume\":0,\"Adj_Close\":\"72643.45\",\"Close\":\"72643.45\",\"Date\":\"2024-04-19 13:38\",\"Open\":\"72658.99\"},{\"High\":\"72677.74\",\"Low\":\"72658.02\",\"Volume\":0,\"Adj_Close\":\"72659.20\",\"Close\":\"72659.20\",\"Date\":\"2024-04-19 13:37\",\"Open\":\"72660.13\"},{\"High\":\"72669.69\",\"Low\":\"72623.70\",\"Volume\":0,\"Adj_Close\":\"72656.62\",\"Close\":\"72656.62\",\"Date\":\"2024-04-19 13:36\",\"Open\":\"72667.71\"},{\"High\":\"72695.35\",\"Low\":\"72663.57\",\"Volume\":0,\"Adj_Close\":\"72669.14\",\"Close\":\"72669.14\",\"Date\":\"2024-04-19 13:35\",\"Open\":\"72695.35\"},{\"High\":\"72709.14\",\"Low\":\"72686.29\",\"Volume\":0,\"Adj_Close\":\"72708.26\",\"Close\":\"72708.26\",\"Date\":\"2024-04-19 13:34\",\"Open\":\"72686.37\"},{\"High\":\"72717.61\",\"Low\":\"72688.31\",\"Volume\":0,\"Adj_Close\":\"72694.76\",\"Close\":\"72694.76\",\"Date\":\"2024-04-19 13:33\",\"Open\":\"72717.61\"},{\"High\":\"72729.18\",\"Low\":\"72706.87\",\"Volume\":0,\"Adj_Close\":\"72714.63\",\"Close\":\"72714.63\",\"Date\":\"2024-04-19 13:32\",\"Open\":\"72719.39\"},{\"High\":\"72724.38\",\"Low\":\"72655.30\",\"Volume\":0,\"Adj_Close\":\"72723.64\",\"Close\":\"72723.64\",\"Date\":\"2024-04-19 13:31\",\"Open\":\"72655.30\"},{\"High\":\"72718.81\",\"Low\":\"72645.06\",\"Volume\":0,\"Adj_Close\":\"72645.06\",\"Close\":\"72645.06\",\"Date\":\"2024-04-19 13:30\",\"Open\":\"72709.30\"},{\"High\":\"72758.73\",\"Low\":\"72708.43\",\"Volume\":0,\"Adj_Close\":\"72709.19\",\"Close\":\"72709.19\",\"Date\":\"2024-04-19 13:29\",\"Open\":\"72758.73\"},{\"High\":\"72755.42\",\"Low\":\"72715.96\",\"Volume\":0,\"Adj_Close\":\"72755.42\",\"Close\":\"72755.42\",\"Date\":\"2024-04-19 13:28\",\"Open\":\"72717.88\"},{\"High\":\"72724.23\",\"Low\":\"72699.02\",\"Volume\":0,\"Adj_Close\":\"72711.45\",\"Close\":\"72711.45\",\"Date\":\"2024-04-19 13:27\",\"Open\":\"72719.85\"},{\"High\":\"72729.94\",\"Low\":\"72716.83\",\"Volume\":0,\"Adj_Close\":\"72716.83\",\"Close\":\"72716.83\",\"Date\":\"2024-04-19 13:26\",\"Open\":\"72729.94\"},{\"High\":\"72753.65\",\"Low\":\"72723.61\",\"Volume\":0,\"Adj_Close\":\"72729.54\",\"Close\":\"72729.54\",\"Date\":\"2024-04-19 13:25\",\"Open\":\"72753.65\"},{\"High\":\"72760.04\",\"Low\":\"72713.61\",\"Volume\":0,\"Adj_Close\":\"72751.99\",\"Close\":\"72751.99\",\"Date\":\"2024-04-19 13:24\",\"Open\":\"72713.61\"},{\"High\":\"72712.44\",\"Low\":\"72684.29\",\"Volume\":0,\"Adj_Close\":\"72712.44\",\"Close\":\"72712.44\",\"Date\":\"2024-04-19 13:23\",\"Open\":\"72689.60\"},{\"High\":\"72690.63\",\"Low\":\"72673.35\",\"Volume\":0,\"Adj_Close\":\"72688.37\",\"Close\":\"72688.37\",\"Date\":\"2024-04-19 13:22\",\"Open\":\"72674.25\"},{\"High\":\"72675.41\",\"Low\":\"72619.84\",\"Volume\":0,\"Adj_Close\":\"72674.25\",\"Close\":\"72674.25\",\"Date\":\"2024-04-19 13:21\",\"Open\":\"72619.84\"},{\"High\":\"72654.05\",\"Low\":\"72610.70\",\"Volume\":0,\"Adj_Close\":\"72615.35\",\"Close\":\"72615.35\",\"Date\":\"2024-04-19 13:20\",\"Open\":\"72647.33\"},{\"High\":\"72662.12\",\"Low\":\"72636.48\",\"Volume\":0,\"Adj_Close\":\"72653.02\",\"Close\":\"72653.02\",\"Date\":\"2024-04-19 13:19\",\"Open\":\"72662.12\"},{\"High\":\"72674.13\",\"Low\":\"72661.04\",\"Volume\":0,\"Adj_Close\":\"72668.87\",\"Close\":\"72668.87\",\"Date\":\"2024-04-19 13:18\",\"Open\":\"72665.76\"},{\"High\":\"72673.70\",\"Low\":\"72650.20\",\"Volume\":0,\"Adj_Close\":\"72666.19\",\"Close\":\"72666.19\",\"Date\":\"2024-04-19 13:17\",\"Open\":\"72667.73\"},{\"High\":\"72681.73\",\"Low\":\"72665.18\",\"Volume\":0,\"Adj_Close\":\"72666.08\",\"Close\":\"72666.08\",\"Date\":\"2024-04-19 13:16\",\"Open\":\"72674.98\"},{\"High\":\"72708.33\",\"Low\":\"72673.42\",\"Volume\":0,\"Adj_Close\":\"72674.98\",\"Close\":\"72674.98\",\"Date\":\"2024-04-19 13:15\",\"Open\":\"72701.23\"},{\"High\":\"72722.14\",\"Low\":\"72691.09\",\"Volume\":0,\"Adj_Close\":\"72700.34\",\"Close\":\"72700.34\",\"Date\":\"2024-04-19 13:14\",\"Open\":\"72714.56\"},{\"High\":\"72711.69\",\"Low\":\"72673.62\",\"Volume\":0,\"Adj_Close\":\"72711.69\",\"Close\":\"72711.69\",\"Date\":\"2024-04-19 13:13\",\"Open\":\"72674.81\"},{\"High\":\"72691.93\",\"Low\":\"72668.74\",\"Volume\":0,\"Adj_Close\":\"72676.89\",\"Close\":\"72676.89\",\"Date\":\"2024-04-19 13:12\",\"Open\":\"72689.84\"},{\"High\":\"72687.12\",\"Low\":\"72660.71\",\"Volume\":0,\"Adj_Close\":\"72683.92\",\"Close\":\"72683.92\",\"Date\":\"2024-04-19 13:11\",\"Open\":\"72666.54\"},{\"High\":\"72688.80\",\"Low\":\"72664.98\",\"Volume\":0,\"Adj_Close\":\"72665.53\",\"Close\":\"72665.53\",\"Date\":\"2024-04-19 13:10\",\"Open\":\"72674.88\"},{\"High\":\"72679.94\",\"Low\":\"72663.55\",\"Volume\":0,\"Adj_Close\":\"72675.07\",\"Close\":\"72675.07\",\"Date\":\"2024-04-19 13:09\",\"Open\":\"72664.91\"},{\"High\":\"72693.39\",\"Low\":\"72666.02\",\"Volume\":0,\"Adj_Close\":\"72667.96\",\"Close\":\"72667.96\",\"Date\":\"2024-04-19 13:08\",\"Open\":\"72690.84\"},{\"High\":\"72716.46\",\"Low\":\"72685.05\",\"Volume\":0,\"Adj_Close\":\"72685.05\",\"Close\":\"72685.05\",\"Date\":\"2024-04-19 13:07\",\"Open\":\"72701.54\"},{\"High\":\"72715.39\",\"Low\":\"72690.38\",\"Volume\":0,\"Adj_Close\":\"72702.94\",\"Close\":\"72702.94\",\"Date\":\"2024-04-19 13:06\",\"Open\":\"72691.09\"},{\"High\":\"72711.22\",\"Low\":\"72692.16\",\"Volume\":0,\"Adj_Close\":\"72692.16\",\"Close\":\"72692.16\",\"Date\":\"2024-04-19 13:05\",\"Open\":\"72705.76\"},{\"High\":\"72703.55\",\"Low\":\"72645.13\",\"Volume\":0,\"Adj_Close\":\"72703.55\",\"Close\":\"72703.55\",\"Date\":\"2024-04-19 13:04\",\"Open\":\"72652.35\"},{\"High\":\"72674.03\",\"Low\":\"72652.29\",\"Volume\":0,\"Adj_Close\":\"72652.29\",\"Close\":\"72652.29\",\"Date\":\"2024-04-19 13:03\",\"Open\":\"72665.30\"},{\"High\":\"72702.31\",\"Low\":\"72660.53\",\"Volume\":0,\"Adj_Close\":\"72667.12\",\"Close\":\"72667.12\",\"Date\":\"2024-04-19 13:02\",\"Open\":\"72702.31\"},{\"High\":\"72709.51\",\"Low\":\"72683.08\",\"Volume\":0,\"Adj_Close\":\"72703.37\",\"Close\":\"72703.37\",\"Date\":\"2024-04-19 13:01\",\"Open\":\"72707.73\"},{\"High\":\"72711.94\",\"Low\":\"72697.80\",\"Volume\":0,\"Adj_Close\":\"72706.02\",\"Close\":\"72706.02\",\"Date\":\"2024-04-19 13:00\",\"Open\":\"72698.11\"},{\"High\":\"72720.04\",\"Low\":\"72684.40\",\"Volume\":0,\"Adj_Close\":\"72684.78\",\"Close\":\"72684.78\",\"Date\":\"2024-04-19 12:59\",\"Open\":\"72718.19\"},{\"High\":\"72719.14\",\"Low\":\"72668.01\",\"Volume\":0,\"Adj_Close\":\"72719.14\",\"Close\":\"72719.14\",\"Date\":\"2024-04-19 12:58\",\"Open\":\"72672.80\"},{\"High\":\"72698.74\",\"Low\":\"72674.60\",\"Volume\":0,\"Adj_Close\":\"72677.58\",\"Close\":\"72677.58\",\"Date\":\"2024-04-19 12:57\",\"Open\":\"72698.74\"},{\"High\":\"72704.94\",\"Low\":\"72690.43\",\"Volume\":0,\"Adj_Close\":\"72697.40\",\"Close\":\"72697.40\",\"Date\":\"2024-04-19 12:56\",\"Open\":\"72692.95\"},{\"High\":\"72699.04\",\"Low\":\"72602.04\",\"Volume\":0,\"Adj_Close\":\"72691.45\",\"Close\":\"72691.45\",\"Date\":\"2024-04-19 12:55\",\"Open\":\"72602.75\"},{\"High\":\"72646.17\",\"Low\":\"72600.07\",\"Volume\":0,\"Adj_Close\":\"72601.91\",\"Close\":\"72601.91\",\"Date\":\"2024-04-19 12:54\",\"Open\":\"72646.17\"},{\"High\":\"72674.60\",\"Low\":\"72642.85\",\"Volume\":0,\"Adj_Close\":\"72644.25\",\"Close\":\"72644.25\",\"Date\":\"2024-04-19 12:53\",\"Open\":\"72668.01\"},{\"High\":\"72675.70\",\"Low\":\"72658.74\",\"Volume\":0,\"Adj_Close\":\"72665.08\",\"Close\":\"72665.08\",\"Date\":\"2024-04-19 12:52\",\"Open\":\"72672.69\"},{\"High\":\"72683.20\",\"Low\":\"72661.53\",\"Volume\":0,\"Adj_Close\":\"72674.77\",\"Close\":\"72674.77\",\"Date\":\"2024-04-19 12:51\",\"Open\":\"72662.25\"},{\"High\":\"72666.85\",\"Low\":\"72638.39\",\"Volume\":0,\"Adj_Close\":\"72662.11\",\"Close\":\"72662.11\",\"Date\":\"2024-04-19 12:50\",\"Open\":\"72638.39\"},{\"High\":\"72633.22\",\"Low\":\"72601.90\",\"Volume\":0,\"Adj_Close\":\"72633.22\",\"Close\":\"72633.22\",\"Date\":\"2024-04-19 12:49\",\"Open\":\"72601.90\"},{\"High\":\"72601.18\",\"Low\":\"72581.25\",\"Volume\":0,\"Adj_Close\":\"72598.20\",\"Close\":\"72598.20\",\"Date\":\"2024-04-19 12:48\",\"Open\":\"72581.25\"},{\"High\":\"72582.68\",\"Low\":\"72567.16\",\"Volume\":0,\"Adj_Close\":\"72581.71\",\"Close\":\"72581.71\",\"Date\":\"2024-04-19 12:47\",\"Open\":\"72576.20\"},{\"High\":\"72593.93\",\"Low\":\"72567.64\",\"Volume\":0,\"Adj_Close\":\"72577.24\",\"Close\":\"72577.24\",\"Date\":\"2024-04-19 12:46\",\"Open\":\"72590.56\"},{\"High\":\"72620.24\",\"Low\":\"72591.56\",\"Volume\":0,\"Adj_Close\":\"72593.51\",\"Close\":\"72593.51\",\"Date\":\"2024-04-19 12:45\",\"Open\":\"72607.65\"},{\"High\":\"72632.85\",\"Low\":\"72602.85\",\"Volume\":0,\"Adj_Close\":\"72606.44\",\"Close\":\"72606.44\",\"Date\":\"2024-04-19 12:44\",\"Open\":\"72602.85\"},{\"High\":\"72608.31\",\"Low\":\"72595.49\",\"Volume\":0,\"Adj_Close\":\"72603.62\",\"Close\":\"72603.62\",\"Date\":\"2024-04-19 12:43\",\"Open\":\"72607.21\"},{\"High\":\"72606.35\",\"Low\":\"72583.55\",\"Volume\":0,\"Adj_Close\":\"72605.18\",\"Close\":\"72605.18\",\"Date\":\"2024-04-19 12:42\",\"Open\":\"72586.25\"},{\"High\":\"72600.78\",\"Low\":\"72579.94\",\"Volume\":0,\"Adj_Close\":\"72585.06\",\"Close\":\"72585.06\",\"Date\":\"2024-04-19 12:41\",\"Open\":\"72587.37\"},{\"High\":\"72581.18\",\"Low\":\"72566.54\",\"Volume\":0,\"Adj_Close\":\"72573.36\",\"Close\":\"72573.36\",\"Date\":\"2024-04-19 12:40\",\"Open\":\"72580.14\"},{\"High\":\"72575.25\",\"Low\":\"72513.98\",\"Volume\":0,\"Adj_Close\":\"72575.25\",\"Close\":\"72575.25\",\"Date\":\"2024-04-19 12:39\",\"Open\":\"72516.30\"},{\"High\":\"72503.42\",\"Low\":\"72490.75\",\"Volume\":0,\"Adj_Close\":\"72503.42\",\"Close\":\"72503.42\",\"Date\":\"2024-04-19 12:38\",\"Open\":\"72496.73\"},{\"High\":\"72497.22\",\"Low\":\"72460.04\",\"Volume\":0,\"Adj_Close\":\"72496.20\",\"Close\":\"72496.20\",\"Date\":\"2024-04-19 12:37\",\"Open\":\"72461.71\"},{\"High\":\"72479.78\",\"Low\":\"72466.41\",\"Volume\":0,\"Adj_Close\":\"72468.31\",\"Close\":\"72468.31\",\"Date\":\"2024-04-19 12:36\",\"Open\":\"72476.09\"},{\"High\":\"72475.70\",\"Low\":\"72453.78\",\"Volume\":0,\"Adj_Close\":\"72475.70\",\"Close\":\"72475.70\",\"Date\":\"2024-04-19 12:35\",\"Open\":\"72453.78\"},{\"High\":\"72464.61\",\"Low\":\"72435.72\",\"Volume\":0,\"Adj_Close\":\"72451.11\",\"Close\":\"72451.11\",\"Date\":\"2024-04-19 12:34\",\"Open\":\"72462.99\"},{\"High\":\"72477.75\",\"Low\":\"72455.33\",\"Volume\":0,\"Adj_Close\":\"72460.73\",\"Close\":\"72460.73\",\"Date\":\"2024-04-19 12:33\",\"Open\":\"72477.73\"},{\"High\":\"72479.52\",\"Low\":\"72457.92\",\"Volume\":0,\"Adj_Close\":\"72479.52\",\"Close\":\"72479.52\",\"Date\":\"2024-04-19 12:32\",\"Open\":\"72460.20\"},{\"High\":\"72477.06\",\"Low\":\"72443.70\",\"Volume\":0,\"Adj_Close\":\"72459.68\",\"Close\":\"72459.68\",\"Date\":\"2024-04-19 12:31\",\"Open\":\"72443.70\"},{\"High\":\"72447.72\",\"Low\":\"72414.66\",\"Volume\":0,\"Adj_Close\":\"72447.72\",\"Close\":\"72447.72\",\"Date\":\"2024-04-19 12:30\",\"Open\":\"72414.66\"},{\"High\":\"72434.73\",\"Low\":\"72418.95\",\"Volume\":0,\"Adj_Close\":\"72420.37\",\"Close\":\"72420.37\",\"Date\":\"2024-04-19 12:29\",\"Open\":\"72431.56\"},{\"High\":\"72451.36\",\"Low\":\"72426.56\",\"Volume\":0,\"Adj_Close\":\"72431.84\",\"Close\":\"72431.84\",\"Date\":\"2024-04-19 12:28\",\"Open\":\"72451.36\"},{\"High\":\"72483.03\",\"Low\":\"72459.68\",\"Volume\":0,\"Adj_Close\":\"72459.93\",\"Close\":\"72459.93\",\"Date\":\"2024-04-19 12:27\",\"Open\":\"72480.58\"},{\"High\":\"72500.86\",\"Low\":\"72469.16\",\"Volume\":0,\"Adj_Close\":\"72483.71\",\"Close\":\"72483.71\",\"Date\":\"2024-04-19 12:26\",\"Open\":\"72469.16\"},{\"High\":\"72483.75\",\"Low\":\"72463.51\",\"Volume\":0,\"Adj_Close\":\"72466.72\",\"Close\":\"72466.72\",\"Date\":\"2024-04-19 12:25\",\"Open\":\"72482.83\"},{\"High\":\"72488.73\",\"Low\":\"72438.98\",\"Volume\":0,\"Adj_Close\":\"72482.37\",\"Close\":\"72482.37\",\"Date\":\"2024-04-19 12:24\",\"Open\":\"72438.98\"},{\"High\":\"72449.36\",\"Low\":\"72406.31\",\"Volume\":0,\"Adj_Close\":\"72438.68\",\"Close\":\"72438.68\",\"Date\":\"2024-04-19 12:23\",\"Open\":\"72406.31\"},{\"High\":\"72395.36\",\"Low\":\"72352.59\",\"Volume\":0,\"Adj_Close\":\"72395.36\",\"Close\":\"72395.36\",\"Date\":\"2024-04-19 12:22\",\"Open\":\"72352.59\"},{\"High\":\"72363.19\",\"Low\":\"72321.99\",\"Volume\":0,\"Adj_Close\":\"72357.92\",\"Close\":\"72357.92\",\"Date\":\"2024-04-19 12:21\",\"Open\":\"72325.21\"},{\"High\":\"72334.89\",\"Low\":\"72309.56\",\"Volume\":0,\"Adj_Close\":\"72325.15\",\"Close\":\"72325.15\",\"Date\":\"2024-04-19 12:20\",\"Open\":\"72331.09\"},{\"High\":\"72346.07\",\"Low\":\"72326.72\",\"Volume\":0,\"Adj_Close\":\"72332.14\",\"Close\":\"72332.14\",\"Date\":\"2024-04-19 12:19\",\"Open\":\"72336.60\"},{\"High\":\"72337.79\",\"Low\":\"72301.87\",\"Volume\":0,\"Adj_Close\":\"72336.96\",\"Close\":\"72336.96\",\"Date\":\"2024-04-19 12:18\",\"Open\":\"72301.87\"},{\"High\":\"72303.07\",\"Low\":\"72281.56\",\"Volume\":0,\"Adj_Close\":\"72302.35\",\"Close\":\"72302.35\",\"Date\":\"2024-04-19 12:17\",\"Open\":\"72293.10\"},{\"High\":\"72301.13\",\"Low\":\"72284.18\",\"Volume\":0,\"Adj_Close\":\"72289.69\",\"Close\":\"72289.69\",\"Date\":\"2024-04-19 12:16\",\"Open\":\"72300.68\"},{\"High\":\"72317.90\",\"Low\":\"72289.07\",\"Volume\":0,\"Adj_Close\":\"72302.92\",\"Close\":\"72302.92\",\"Date\":\"2024-04-19 12:15\",\"Open\":\"72289.20\"},{\"High\":\"72293.17\",\"Low\":\"72274.24\",\"Volume\":0,\"Adj_Close\":\"72289.20\",\"Close\":\"72289.20\",\"Date\":\"2024-04-19 12:14\",\"Open\":\"72277.54\"},{\"High\":\"72278.77\",\"Low\":\"72267.39\",\"Volume\":0,\"Adj_Close\":\"72276.71\",\"Close\":\"72276.71\",\"Date\":\"2024-04-19 12:13\",\"Open\":\"72269.27\"}],\"peerdata\":{\"indexidcscripcode\":\"\",\"sectorcscripcode\":\"\",\"industrycscripcode\":\"\"},\"companydata\":{\"exchangeid\":\"47\",\"companyid\":\"2809\",\"companyname\":\"S&P BSE Sensex\",\"scripcode\":\"SENSEX\",\"scripcodetype\":\"index\",\"seoname\":\"sp-bse-sensex\"}}}})"; + + // 47 BSE +// System.out.println("起始位置:"+str.indexOf("(")); +// System.out.println("结束位置:"+str.lastIndexOf(")")); +// System.out.println(str.substring(str.indexOf("(")+1,str.lastIndexOf(")"))); + System.out.println(getStockKline("SENSEX","47")); +// System.out.println(getStockDetail("SENSEX","47","2024-04-19")); + } +} diff --git a/src/main/java/cn/stock/market/infrastructure/api/GrowwInApis.java b/src/main/java/cn/stock/market/infrastructure/api/GrowwInApis.java new file mode 100644 index 0000000..7eedc18 --- /dev/null +++ b/src/main/java/cn/stock/market/infrastructure/api/GrowwInApis.java @@ -0,0 +1,233 @@ +package cn.stock.market.infrastructure.api; + +import cn.stock.market.dto.TodayStockDTO; +import cn.stock.market.infrastructure.api.investing.IndiaIndexVo; +import cn.stock.market.infrastructure.api.investing.IndiaStockVO; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.http.HttpEntity; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 数据来源网站:..., ... + * + * @auther jnerh + */ +public class GrowwInApis { + + public static final String INDEX_DETAIL_URL = "https://groww.in/v1/api/stocks_data/v1/accord_points/exchange/%s/segment/CASH/latest_indices_ohlc/%s"; + public static final String INDEX_KLINE_URL = "https://groww.in/v1/api/charting_service/v2/chart/delayed/exchange/%s/segment/CASH/%s/daily?intervalInMinutes=%s&minimal=true"; + + + public static void requestSenSexData(List indexVoList) { + IndiaIndexVo vo1 = new IndiaIndexVo(); + JSONObject object = GrowwInApis.getSenSexDetail(); + IndiaStockVO market = GrowwInApis.objToVo(object); + market.setName("BSESENSEX指数"); + vo1.setIndexVo(market); + + List kine = GrowwInApis.getSenSexKline(); + vo1.setKLine(kine); + indexVoList.add(vo1); + } + public static void requestNifty50Data(List indexVoList) { + IndiaIndexVo vo1 = new IndiaIndexVo(); + JSONObject object = GrowwInApis.getNifty50Detail(); + IndiaStockVO market = GrowwInApis.objToVo(object); + market.setName("NIFTY50指数"); + vo1.setIndexVo(market); + + List kine = GrowwInApis.getNifty50Kline(); + vo1.setKLine(kine); + indexVoList.add(vo1); + } + + /** + * 获取Nifty50指数详情 + */ + public static JSONObject getIndexDetail(String exchange, String type) { + String url = String.format(INDEX_DETAIL_URL, exchange, type); + String str = get(url); + return JSON.parseObject(str); + } + + /** + * 获取k线图 + */ + public static List getIndexKline(String exchange, String type, String intervalInMinutes) { + String url = String.format(INDEX_KLINE_URL, exchange, type, intervalInMinutes); + String str = get(url); + JSONObject object = JSON.parseObject(str); + return getList(object.getString("candles")); + } + + + /** + * 获取Nifty50指数详情 + */ + public static JSONObject getSenSexDetail() { + return getIndexDetail("BSE", "1"); + } + + /** + * 获取k线图 + */ + public static List getSenSexKline() { + return getIndexKline("BSE", "1", "1"); + } + + /** + * 获取Nifty50指数详情 + */ + public static JSONObject getNifty50Detail() { + return getIndexDetail("NSE", "NIFTY"); + } + + /** + * 获取k线图 + */ + public static List getNifty50Kline() { + return getIndexKline("NSE", "NIFTY", "5"); + } + + static String get(String url) { + CloseableHttpClient httpClient = null; + CloseableHttpResponse response = null; + String result = ""; + + try { + httpClient = HttpClients.createDefault(); + HttpGet httpGet = new HttpGet(url); + httpGet.setHeader("Referer", "https://groww.in/indices/nifty"); + httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0"); + httpGet.setHeader("X-App-Id", "growwWeb"); + httpGet.setHeader("X-Device-Id", "fd4815a2-49e4-570a-931a-0316d4d8a52d"); + httpGet.setHeader("X-Device-Type", "desktop"); + httpGet.setHeader("X-Platform", "web"); + RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000).setConnectionRequestTimeout(35000).setSocketTimeout(60000).build(); + httpGet.setConfig(requestConfig); + response = httpClient.execute(httpGet); + HttpEntity entity = response.getEntity(); + result = EntityUtils.toString(entity); + } catch (IOException e) { + e.printStackTrace(); + } finally { + + if (null != response) { + try { + response.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (null != httpClient) { + try { + httpClient.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return result; + } + + public static IndiaStockVO objToVo(JSONObject object) { + IndiaStockVO market = new IndiaStockVO(); + if (object.containsKey("close")) { + market.setClose(object.getString("close")); + } + if (object.containsKey("value")) { + market.setNowPrice(object.getString("value")); + } + if (object.containsKey("dayChangePerc")) { + market.setRate(object.getString("dayChangePerc")); + } + if (object.containsKey("high")) { + market.setHigh(object.getString("high")); + } + if (object.containsKey("low")) { + market.setLow(object.getString("low")); + } + if (object.containsKey("open")) { + market.setOpen(object.getString("open")); + } + + return market; + } + + private static List getList(String json) { + List dataObject = new ArrayList<>(); + JSONArray jsonArray = JSON.parseArray(json); + for (Object obj : jsonArray) { + JSONObject entity = new JSONObject(); + JSONArray jsonArray1 = JSON.parseArray(obj.toString()); + entity.put("upd_date", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(JSON.parseArray(obj.toString()).getLong(0) * 1000)).replace(" ", "T")); + entity.put("price", jsonArray1.getBigDecimal(1)); + dataObject.add(entity); + } + return dataObject; + } + + private static TodayStockDTO todayStockDTO(JSONObject jsonObject) { + TodayStockDTO dto = new TodayStockDTO(); + if (jsonObject.containsKey("exchange")) { + dto.setStockType(jsonObject.getString("exchange")); + } else { + dto.setStockType(""); + } + if (jsonObject.containsKey("lname")) { + dto.setStockName(jsonObject.getString("lname")); + } else { + dto.setStockName(""); + } + if (jsonObject.containsKey("high_price")) { + dto.setHighPrice(jsonObject.getString("highPrice")); + } else { + dto.setHighPrice("0.00"); + } + if (jsonObject.containsKey("low_price")) { + dto.setLowPrice(jsonObject.getString("low_price")); + } else { + dto.setLowPrice("0.00"); + } + if (jsonObject.containsKey("price")) { + dto.setLastPrice(jsonObject.getString("price")); + } else { + dto.setLastPrice("0.00"); + } + if (jsonObject.containsKey("close_price")) { + dto.setPrevClosePrice(jsonObject.getString("close_price")); + } else { + dto.setPrevClosePrice("0.00"); + } + if (jsonObject.containsKey("netchg")) { + dto.setChange(jsonObject.getString("netchg")); + } else { + dto.setChange("0.00"); + } + if (jsonObject.containsKey("perchg")) { + dto.setChangePercent(jsonObject.getString("perchg")); + } else { + dto.setChangePercent("0.00"); + } + return dto; + + } + + public static void main(String[] args) { + System.out.println(getNifty50Detail()); + System.out.println(getNifty50Kline()); + } +} diff --git a/src/main/java/cn/stock/market/infrastructure/api/TodayApis.java b/src/main/java/cn/stock/market/infrastructure/api/TodayApis.java index bd50302..ca004ab 100644 --- a/src/main/java/cn/stock/market/infrastructure/api/TodayApis.java +++ b/src/main/java/cn/stock/market/infrastructure/api/TodayApis.java @@ -1,5 +1,6 @@ package cn.stock.market.infrastructure.api; +import cn.stock.market.dto.TodayStockDTO; import cn.stock.market.utils.HttpClientRequest; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -20,7 +21,7 @@ public class TodayApis { } //获取Top Gainers - public static List getTopGainers(String exchange){ + public static List getTopGainers(String exchange){ String url = "https://marketapi.intoday.in/widget/topgainer/view?exchange=" + exchange; //返回字符串对象格式:{"status_code":1,"success":true,"data":[{}],"message":"Successful","fromredis":true} String str = get(url); @@ -32,17 +33,19 @@ public class TodayApis { if(!bool){ return null; } + return getList(object.getString("data"),1); //进行数据转换 - List dataObject = new ArrayList<>(); - JSONArray jsonArray = JSON.parseArray(object.getString("data")); - for (Object obj : jsonArray){ - JSONObject entity = JSON.parseObject(obj.toString()); - dataObject.add(entity); - } - return dataObject; +// List dataObject = new ArrayList<>(); +// JSONArray jsonArray = JSON.parseArray(object.getString("data")); +// for (Object obj : jsonArray){ +//// JSONObject entity = JSON.parseObject(obj.toString()); +// TodayStockDTO entity = todayStockDTO(JSON.parseObject(obj.toString())); +// dataObject.add(entity); +// } +// return dataObject; } //获取Top Losers - public static List getTopLosers(String exchange){ + public static List getTopLosers(String exchange){ String url = "https://marketapi.intoday.in/widget/toploser/view?exchange=" + exchange; //返回字符串对象格式:{"status_code":1,"success":true,"data":[{}],"message":"Successful","fromredis":true} String str = get(url); @@ -54,17 +57,20 @@ public class TodayApis { if(!bool){ return null; } + return getList(object.getString("data"),1); //进行数据转换 - List dataObject = new ArrayList<>(); - JSONArray jsonArray = JSON.parseArray(object.getString("data")); - for (Object obj : jsonArray){ - JSONObject entity = JSON.parseObject(obj.toString()); - dataObject.add(entity); - } - return dataObject; +//// List dataObject = new ArrayList<>(); +// List dataObject = new ArrayList<>(); +// JSONArray jsonArray = JSON.parseArray(object.getString("data")); +// for (Object obj : jsonArray){ +// JSONObject entity = JSON.parseObject(obj.toString()); +//// TodayStockDTO entity = todayStockDTO(JSON.parseObject(obj.toString())); +// dataObject.add(entity); +// } +// return dataObject; } //获取Most Active Volume - public static List getMostActiveVolume(String exchange){ + public static List getMostActiveVolume(String exchange){ String url = "https://marketapi.intoday.in/widget/mostactivetopper/view?exchange=" + exchange; //返回字符串对象格式:{"status_code":1,"success":true,"data":[{}],"message":"Successful","fromredis":true} String str = get(url); @@ -76,17 +82,19 @@ public class TodayApis { if(!bool){ return null; } + return getList(object.getString("data"),1); //进行数据转换 - List dataObject = new ArrayList<>(); - JSONArray jsonArray = JSON.parseArray(object.getString("data")); - for (Object obj : jsonArray){ - JSONObject entity = JSON.parseObject(obj.toString()); - dataObject.add(entity); - } - return dataObject; +// List dataObject = new ArrayList<>(); +// JSONArray jsonArray = JSON.parseArray(object.getString("data")); +// for (Object obj : jsonArray){ +//// JSONObject entity = JSON.parseObject(obj.toString()); +// TodayStockDTO entity = todayStockDTO(JSON.parseObject(obj.toString())); +// dataObject.add(entity); +// } +// return dataObject; } //获取Most Active Value - public static List getMostActiveValue(String exchange){ + public static List getMostActiveValue(String exchange){ String url = "https://marketapi.intoday.in/widget/mostactivetopperbyvalue/view?exchange=" + exchange; //返回字符串对象格式:{"status_code":1,"success":true,"data":[{}],"message":"Successful","fromredis":true} String str = get(url); @@ -98,14 +106,117 @@ public class TodayApis { if(!bool){ return null; } - //进行数据转换 - List dataObject = new ArrayList<>(); - JSONArray jsonArray = JSON.parseArray(object.getString("data")); - for (Object obj : jsonArray){ - JSONObject entity = JSON.parseObject(obj.toString()); - dataObject.add(entity); + return getList(object.getString("data"),1); +// //进行数据转换 +// List dataObject = new ArrayList<>(); +// JSONArray jsonArray = JSON.parseArray(object.getString("data")); +// for (Object obj : jsonArray){ +//// JSONObject entity = JSON.parseObject(obj.toString()); +// TodayStockDTO entity = todayStockDTO(JSON.parseObject(obj.toString())); +// dataObject.add(entity); +// } +// return dataObject; + } + private static List getList(String json, int type){ + if(type == 1){ + List dataObject = new ArrayList<>(); + JSONArray jsonArray = JSON.parseArray(json); + for (Object obj : jsonArray){ + JSONObject entity = JSON.parseObject(obj.toString()); + dataObject.add(entity); + } + return dataObject; + }else{ + //进行数据转换 + List dataObject = new ArrayList<>(); + JSONArray jsonArray = JSON.parseArray(json); + for (Object obj : jsonArray){ + TodayStockDTO entity = todayStockDTO(JSON.parseObject(obj.toString())); + dataObject.add(entity); + } + return dataObject; } - return dataObject; + + } + + private static TodayStockDTO todayStockDTO(JSONObject jsonObject){ + TodayStockDTO dto = new TodayStockDTO(); + if(jsonObject.containsKey("exchange")){ + dto.setStockType(jsonObject.getString("exchange")); + }else { + dto.setStockType(""); + } + if(jsonObject.containsKey("lname")){ + dto.setStockName(jsonObject.getString("lname")); + }else{ + dto.setStockName(""); + } + if(jsonObject.containsKey("high_price")){ + dto.setHighPrice(jsonObject.getString("highPrice")); + }else{ + dto.setHighPrice("0.00"); + } + if(jsonObject.containsKey("low_price")){ + dto.setLowPrice(jsonObject.getString("low_price")); + }else { + dto.setLowPrice("0.00"); + } + if(jsonObject.containsKey("price")){ + dto.setLastPrice(jsonObject.getString("price")); + }else{ + dto.setLastPrice("0.00"); + } + if(jsonObject.containsKey("close_price")){ + dto.setPrevClosePrice(jsonObject.getString("close_price")); + }else{ + dto.setPrevClosePrice("0.00"); + } + if(jsonObject.containsKey("netchg")){ + dto.setChange(jsonObject.getString("netchg")); + }else{ + dto.setChange("0.00"); + } + if(jsonObject.containsKey("perchg")){ + dto.setChangePercent(jsonObject.getString("perchg")); + }else{ + dto.setChangePercent("0.00"); + } + return dto; + + } + + //获取详情 + public static JSONObject getStockDetail(String exchange,String coCode){ + String url = String.format("https://marketapi.intoday.in/widget/stockdetail/pullview?co_code=%s&exchange=%s",coCode,exchange); + String str = get(url); + JSONObject object = JSON.parseObject(str); + boolean bool = false; + if(object.containsKey("success")){ + bool = object.getBoolean("success"); + } + if(!bool){ + return new JSONObject(); + } + JSONArray jsonArray = JSON.parseArray(object.getString("data")); + JSONObject entity = JSON.parseObject(jsonArray.get(0).toString()); + return entity; + + } + + //获取k线图 + public static List getStockKline(String exchange, String coCode, String format, String durationType, String duration){ + String url = String.format("https://marketapi.intoday.in/widget/pricechart_company/pullview?exchange=%s&co_code=%s&format=%s&durationtype=%s&duration=%s", + exchange, coCode, format, durationType, duration); + String str = get(url); + JSONObject object = JSON.parseObject(str); + boolean bool = false; + if(object.containsKey("success")){ + bool = object.getBoolean("success"); + } + if(!bool){ + return new ArrayList(); + } + return getList(object.getString("data"),1); } public static void main(String[] args) { diff --git a/src/main/java/cn/stock/market/infrastructure/job/InvestingTask.java b/src/main/java/cn/stock/market/infrastructure/job/InvestingTask.java index dd740db..57af80e 100644 --- a/src/main/java/cn/stock/market/infrastructure/job/InvestingTask.java +++ b/src/main/java/cn/stock/market/infrastructure/job/InvestingTask.java @@ -107,30 +107,37 @@ public class InvestingTask { } /*新闻接口*/ - @Scheduled(cron = "0 0 1 * * ?") + @Scheduled(cron = "0 0 0/3 * * ?") public void saveStockNews() { - String news = stockService.getNews(); - List newsList = Arrays.asList(news.split(" newsList = Arrays.asList(news.split(" newsInfo = stockService.getNewsInfo(contentUrl); - siteNews.setContent(newsInfo.get(0)); - siteNews.setTitle(newsInfo.get(1)); - List list = newsRepository.findAll(QSiteNewsPO.siteNewsPO.sourceId.eq(id)); - if (list.size() == 0) { - newsRepository.save(siteNews); - } - }); + SiteNews siteNews = new SiteNews(); + siteNews.setAddTime(new Date()); + siteNews.setSourceId(id); + siteNews.setDescription(time); + siteNews.setImgurl(imgUrl); + List newsInfo = stockService.getNewsInfo(contentUrl); + siteNews.setContent(newsInfo.get(0)); + siteNews.setTitle(newsInfo.get(1)); + List list = newsRepository.findAll(QSiteNewsPO.siteNewsPO.sourceId.eq(id)); + if (list.size() == 0) { + newsRepository.save(siteNews); + } + }); + log.info("英文股票新闻数据同步完成"); + } catch (Exception e) { + log.info("新闻数据同步异常,异常信息{}。。。。",e.getMessage()); + } } } diff --git a/src/main/java/cn/stock/market/utils/HttpClientRequest.java b/src/main/java/cn/stock/market/utils/HttpClientRequest.java index b67e2a2..e6c7c9c 100644 --- a/src/main/java/cn/stock/market/utils/HttpClientRequest.java +++ b/src/main/java/cn/stock/market/utils/HttpClientRequest.java @@ -212,6 +212,59 @@ public class HttpClientRequest { return result; } + public static String doEttechchartsGet(String url) { + CloseableHttpClient httpClient = null; + CloseableHttpResponse response = null; + String result = ""; + + try { + httpClient = HttpClients.createDefault(); + + HttpGet httpGet = new HttpGet(url); + +// httpGet.setHeader(":authority","ettechcharts.indiatimes.com"); +// httpGet.setHeader(":method","GET"); +// httpGet.setHeader(":scheme","https"); + httpGet.setHeader("accept","*/*"); + httpGet.setHeader("accept-encoding","gzip, deflate, br"); + httpGet.setHeader("accept-language","zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6"); + httpGet.setHeader("user-agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"); + httpGet.setHeader("Referer", "https://economictimes.indiatimes.com/"); + + + RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000).setConnectionRequestTimeout(35000).setSocketTimeout(60000).build(); + + httpGet.setConfig(requestConfig); + + response = httpClient.execute(httpGet); + + HttpEntity entity = response.getEntity(); + + result = EntityUtils.toString(entity); + } catch (ClientProtocolException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + + if (null != response) { + try { + response.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (null != httpClient) { + try { + httpClient.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return result; + } + public static void main(String[] args) { String url = "https://marketapi.intoday.in/widget/topgainer/view?exchange=nse"; String str = doGet(url); diff --git a/src/main/java/cn/stock/market/utils/RequestCacheUtils.java b/src/main/java/cn/stock/market/utils/RequestCacheUtils.java index 2d3b35f..d382264 100644 --- a/src/main/java/cn/stock/market/utils/RequestCacheUtils.java +++ b/src/main/java/cn/stock/market/utils/RequestCacheUtils.java @@ -65,6 +65,50 @@ public class RequestCacheUtils { return response; } + + /** + * 根据时间创建缓存 + * @param key key + * @param duration 时间(毫秒) + * @return + */ + public static Cache> cacheByMilliseconds(String key,long duration) { + if(! map.containsKey(key)) { + log.info("创建缓存: {}", key); + Cache> cache = CacheBuilder.newBuilder() + .maximumSize(1000) + .expireAfterWrite(duration,TimeUnit.MILLISECONDS) + .weakValues() + .recordStats() + .build( +// new CacheLoader() { +// @Override +// public Object load(String key) throws Exception { +// return func.apply(key); +// } +// } + ); + map.put(key, cache); + } + + return map.get(key); + } + + @SneakyThrows + public static ServerResponse cache(String module, String key,long duration, Function> func) { + Cache> cache = cacheByMilliseconds(module,duration); + AtomicBoolean bool = new AtomicBoolean(true); + ServerResponse response = (ServerResponse) cache.get(key, () -> { + bool.set(false); + return func.apply(key); + }); + + if(bool.get()) { + log.info("命中缓存 module: {}, key: {}, 时间戳: {}", module, key, System.currentTimeMillis()); + } + + return response; + } public static void main(String[] args) throws InterruptedException { ServerResponse response = null; diff --git a/src/main/java/cn/stock/market/web/ArticleApiController.java b/src/main/java/cn/stock/market/web/ArticleApiController.java index 81a1f35..4befd79 100644 --- a/src/main/java/cn/stock/market/web/ArticleApiController.java +++ b/src/main/java/cn/stock/market/web/ArticleApiController.java @@ -20,7 +20,7 @@ import cn.stock.market.domain.basic.service.SiteArticleService; import cn.stock.market.utils.ServerResponse; @Controller -@RequestMapping({"/api/market/art/", "/api/hq/art/"}) +@RequestMapping({"/market/api/market/art/","/market/api/market/art/","/api/market/art/", "/api/hq/art/"}) @Api(tags = "公告信息") public class ArticleApiController extends BaseController { diff --git a/src/main/java/cn/stock/market/web/BTodayStockController.java b/src/main/java/cn/stock/market/web/BTodayStockController.java index b7d68df..1692773 100644 --- a/src/main/java/cn/stock/market/web/BTodayStockController.java +++ b/src/main/java/cn/stock/market/web/BTodayStockController.java @@ -35,7 +35,7 @@ public class BTodayStockController { @Autowired private BtodayStockService btodayStockService; - @GetMapping("/api/bToday/kLine") + @GetMapping({"/market/api/bToday/kLine","/api/bToday/kLine"}) @ApiOperation(value = "股票详情K线图",httpMethod = "GET") @ApiImplicitParams({ @ApiImplicitParam(name="exchange",value = "BSE或者NSE"), @@ -140,7 +140,7 @@ public class BTodayStockController { "fromredis: 标志是否来自 Redis 缓存,false 表示不是", response = JSONObject.class), }) - @GetMapping("/api/bToday/stockDetail") + @GetMapping({"/market/api/bToday/stockDetail","/api/bToday/stockDetail"}) @EncryptFilter(decryptRequest = false) public com.alibaba.fastjson.JSONObject getPriceChartCompanyPullView( @RequestParam(value = "exchange") String exchange, diff --git a/src/main/java/cn/stock/market/web/InfoController.java b/src/main/java/cn/stock/market/web/InfoController.java index e4db529..7c4d53b 100644 --- a/src/main/java/cn/stock/market/web/InfoController.java +++ b/src/main/java/cn/stock/market/web/InfoController.java @@ -25,7 +25,7 @@ import springfox.documentation.annotations.ApiIgnore; * @created Dec 4, 2018 10:22:44 PM */ @RestController -@RequestMapping("/api/hq/") +@RequestMapping({"/market/api/hq/","/api/hq/"}) @ApiIgnore public class InfoController { @Value("${spring.application.name}") @@ -40,6 +40,7 @@ public class InfoController { public Map test(@RequestParam(required = false) String key) { Map map = Maps.newHashMap(); map.put("stockMarketDbUrl", stockMarketDbUrl); + map.put("stockMarketDbUrl1", stockMarketDbUrl); if(StringUtils.isNotBlank(key)) { map.put("key", PropertiesUtil.getProperty(key)); } diff --git a/src/main/java/cn/stock/market/web/MoneyApiController.java b/src/main/java/cn/stock/market/web/MoneyApiController.java index d0bc595..8356f93 100644 --- a/src/main/java/cn/stock/market/web/MoneyApiController.java +++ b/src/main/java/cn/stock/market/web/MoneyApiController.java @@ -1,5 +1,6 @@ package cn.stock.market.web; +import cn.hutool.core.date.DateUtil; import cn.stock.market.MoneyStockSuggestDTO; import cn.stock.market.domain.basic.entity.MoneyStock; import cn.stock.market.domain.basic.repository.MoneyStockRepository; @@ -37,10 +38,11 @@ import org.springframework.web.client.RestClientException; import org.springframework.web.client.RestTemplate; import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; +import java.util.function.Function; +import java.util.function.Predicate; import java.util.stream.Collectors; /** @@ -166,13 +168,17 @@ public class MoneyApiController { "priceprevclose: 前一交易日的收盘价\n" + "30DayAvg: 过去30天的平均", response = JSONObject.class), }) - @GetMapping("/api/market/money/getStockDetail") + @GetMapping({"/market/api/market/money/getStockDetail","/api/market/money/getStockDetail"}) @ResponseBody @EncryptFilter(decryptRequest = false) public ServerResponse getStockDetail(@RequestParam String stockType, @RequestParam String symbol ) { String url = String.format("https://priceapi.moneycontrol.com/pricefeed/%s/equitycash/%s",stockType,symbol); - MoneyStock moneyStock = moneyStockRepository.findOne(QMoneyStockPO.moneyStockPO.stockType.eq(stockType).and(QMoneyStockPO.moneyStockPO.moneyScId.eq(symbol))).orElse(null); + MoneyStock moneyStock = moneyStockRepository.findOne(QMoneyStockPO.moneyStockPO.stockType.eq(stockType) + .and(QMoneyStockPO.moneyStockPO.moneyScId.eq(symbol)) + .and(QMoneyStockPO.moneyStockPO.isLock.eq(0)) + .and(QMoneyStockPO.moneyStockPO.isShow.eq(0))) + .orElse(null); /* if(moneyStock==null){ return ServerResponse.createByErrorMsg("没有找到该股票"); }*/ @@ -203,6 +209,10 @@ public class MoneyApiController { if(null!=moneyStock){ json1.put("id",moneyStock.getId()); } + if(StringUtils.equals(data.getString("pricecurrent"),"0.00") + && (!StringUtils.equals(data.getString("priceprevclose"),"0.00"))){ + json1.put("pricecurrent",data.getString("priceprevclose")); + } } return ServerResponse.createBySuccess(json1); } @@ -501,7 +511,7 @@ public class MoneyApiController { @ApiResponse(code = 200, message = "" + "股票推荐相关: top gainer", response = JSONObject.class), }) - @GetMapping("/api/market/money/getTopGainer") + @GetMapping({"/market/api/market/money/getTopGainer","/api/market/money/getTopGainer"}) @ResponseBody @EncryptFilter(decryptRequest = false) @@ -517,8 +527,10 @@ public class MoneyApiController { } else if (StringUtils.equals(stockType, "bse")) { moneyStockSuggestDTOS = bseGainer(); } - - moneyStockSuggestDTOS = moneyStockSuggestDTOS.stream().filter(f->StringUtils.isNotBlank(f.getStockName())).collect(Collectors.toList()); + Map map = new HashMap<>(); + moneyStockSuggestDTOS = moneyStockSuggestDTOS.stream() + .filter(f->StringUtils.isNotBlank(f.getStockName())) + .filter(i -> map.putIfAbsent(i.getStockName(), Boolean.TRUE) == null).collect(Collectors.toList()); if(CollectionUtils.isNotEmpty(moneyStockSuggestDTOS)){ List selfUlrList = moneyStockSuggestDTOS.stream().map(MoneyStockSuggestDTO::getStockName).collect(Collectors.toList()); if(CollectionUtils.isNotEmpty(selfUlrList)){ @@ -544,7 +556,7 @@ public class MoneyApiController { @ApiResponse(code = 200, message = "" + "股票推荐相关: TopLoser", response = JSONObject.class), }) - @GetMapping("/api/market/money/getTopLoser") + @GetMapping({"/market/api/market/money/getTopLoser","/api/market/money/getTopLoser"}) @ResponseBody @EncryptFilter(decryptRequest = false) @@ -557,7 +569,10 @@ public class MoneyApiController { }else if(StringUtils.equals(stockType,"bse")){ moneyStockSuggestDTOS = bseTopLoser(); } - moneyStockSuggestDTOS = moneyStockSuggestDTOS.stream().filter(f->StringUtils.isNotBlank(f.getStockName())).collect(Collectors.toList()); + Map map = new HashMap<>(); + moneyStockSuggestDTOS = moneyStockSuggestDTOS.stream() + .filter(f->StringUtils.isNotBlank(f.getStockName())) + .filter(i -> map.putIfAbsent(i.getStockName(), Boolean.TRUE) == null).collect(Collectors.toList()); if(CollectionUtils.isNotEmpty(moneyStockSuggestDTOS)){ moneyStockSuggestDTOS.stream().forEach(f->f.setDispId(extractLastSegment(f.getStockUrl()))); List selfUlrList = moneyStockSuggestDTOS.stream().map(MoneyStockSuggestDTO::getStockName).collect(Collectors.toList()); @@ -594,7 +609,7 @@ public class MoneyApiController { @ApiResponse(code = 200, message = "" + "股票推荐相关: top active", response = JSONObject.class), }) - @GetMapping("/api/market/money/getTopActives") + @GetMapping({"/market/api/market/money/getTopActives","/api/market/money/getTopActives"}) @ResponseBody @EncryptFilter(decryptRequest = false) @@ -607,7 +622,10 @@ public class MoneyApiController { }else if(StringUtils.equals(stockType,"bse")){ moneyStockSuggestDTOS = bseActives(); } - moneyStockSuggestDTOS = moneyStockSuggestDTOS.stream().filter(f->StringUtils.isNotBlank(f.getStockName())).collect(Collectors.toList()); + Map map = new HashMap<>(); + moneyStockSuggestDTOS = moneyStockSuggestDTOS.stream() + .filter(f->StringUtils.isNotBlank(f.getStockName())) + .filter(i -> map.putIfAbsent(i.getStockName(), Boolean.TRUE) == null).collect(Collectors.toList()); if(CollectionUtils.isNotEmpty(moneyStockSuggestDTOS)){ moneyStockSuggestDTOS.stream().forEach(f->f.setDispId(extractLastSegment(f.getStockUrl()))); List selfUlrList = moneyStockSuggestDTOS.stream().map(MoneyStockSuggestDTO::getStockName).collect(Collectors.toList()); @@ -636,7 +654,7 @@ public class MoneyApiController { - @GetMapping("/api/market/money/history/kLine") + @GetMapping({"/market/api/market/money/history/kLine","/api/market/money/history/kLine"}) @ApiOperation(value = "获取kline的money数据源", notes = "获取kline的money数据源",response = StockHistoryResponse.class) @ApiImplicitParams({ @ApiImplicitParam(name = "symbol", value = "Stock symbol 对应的是NSEID 或者是BSEID", required = true, dataType = "String", paramType = "query"), @@ -647,7 +665,7 @@ public class MoneyApiController { @ApiImplicitParam(name = "currencyCode", value = "INR 不变", required = true, dataType = "String", paramType = "query") }) @ResponseBody - @EncryptFilter(decryptRequest = false) + @EncryptFilter(decryptRequest = false) public ResponseEntity getStockHistory( @RequestParam String symbol, @RequestParam String resolution ) { @@ -659,24 +677,24 @@ public class MoneyApiController { int countback = 5; if(StringUtils.equals("H",resolution)){ to = (long) (System.currentTimeMillis() / 1000); - from = to - (1 * 60 * 60 ); + from = to - ( 60 * 60 ); countback = 60; request.setResolution("1"); }else if(StringUtils.equals("D",resolution)){ to = (long) (System.currentTimeMillis() / 1000); from = to - (24 * 60 * 60 ); - countback = 9; - request.setResolution("60"); + countback = 390; + request.setResolution("1"); }else if(StringUtils.equals("W",resolution)){ to = (long) (System.currentTimeMillis() / 1000); - from = to - (10 * 24 * 60 * 60 ); - countback = 7; - request.setResolution("1D"); + from = to - (7 * 24 * 60 * 60 ); + countback = 471; + request.setResolution("5"); }else if(StringUtils.equals("M",resolution)){ to = (long) (System.currentTimeMillis() / 1000); from = to - (35 * 24 * 60 * 60 ); - countback = 30; - request.setResolution("1D"); + countback = 328; + request.setResolution("30"); } request.setFrom(from); @@ -708,6 +726,7 @@ public class MoneyApiController { } if (response != null) { + setResponse(response,resolution); // API request successful, return the response return ResponseEntity.ok(response); } else { @@ -718,6 +737,50 @@ public class MoneyApiController { // 返回响应 } + private void setResponse(StockHistoryResponse response,String resolution){ + if(!"ok".equals(response.getS())){ + return; + } + if(Objects.isNull(response.getT())){ + return; + } + if(StringUtils.equals("H",resolution) || StringUtils.equals("D",resolution)) { + List t = new ArrayList<>(); + List o = new ArrayList<>(); + List h = new ArrayList<>(); + List l = new ArrayList<>(); + List c = new ArrayList<>(); + List v = new ArrayList<>(); + + //根据时间过滤,只留当天的数据 + Date currentTime = new Date(); + //判断最后一条是不是当天的数据,如果不是,把最后一条的时间作为当天的时间 + long getTime = response.getT().get(response.getT().size() - 1) * 1000L; + if(!DateUtil.isSameDay(currentTime, new Date(getTime))){ + currentTime = new Date(getTime); + } + int i = 0; + for (Long time : response.getT()) { + time = time * 1000; + if (DateUtil.isSameDay(currentTime, new Date(time))) { + t.add(response.getT().get(i)); + o.add(response.getO().get(i)); + h.add(response.getH().get(i)); + l.add(response.getL().get(i)); + c.add(response.getC().get(i)); + v.add(response.getV().get(i)); + } + i++; + } + response.setT(t); + response.setO(o); + response.setH(h); + response.setL(l); + response.setC(c); + response.setV(v); + } + } + @@ -742,13 +805,16 @@ public class MoneyApiController { public static void main(String[] args) { - nseGainer(); - nseActives(); - nseTopLoser(); - - bseActives(); - bseGainer(); - bseTopLoser(); +// nseGainer(); +//// nseActives(); +//// nseTopLoser(); +//// +//// bseActives(); +//// bseGainer(); +//// bseTopLoser(); + System.out.println(new Date()); + System.out.println(new Date(1713949200000L)); + System.out.println(DateUtil.isSameDay(new Date(),new Date(1713949200000L))); } private Cache> gainerStockSuggestCache = CacheBuilder.newBuilder() diff --git a/src/main/java/cn/stock/market/web/MoneyProxyApiControl.java b/src/main/java/cn/stock/market/web/MoneyProxyApiControl.java index 0ebe7ca..2bb0313 100644 --- a/src/main/java/cn/stock/market/web/MoneyProxyApiControl.java +++ b/src/main/java/cn/stock/market/web/MoneyProxyApiControl.java @@ -7,6 +7,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.GetMapping; import java.io.BufferedReader; import java.io.InputStreamReader; @@ -23,7 +24,7 @@ import java.net.URL; public class MoneyProxyApiControl { - @RequestMapping(value = "/api/proxy/queryStockMoneyProxy",method = RequestMethod.GET) + @GetMapping({"/market/api/proxy/queryStockMoneyProxy","/api/proxy/queryStockMoneyProxy"}) public JSONObject queryStockByMoneyIdAndExchangeType(String scId,String exchangeType){ return stockByMoneyIdAndExchangeTypeFromHttp(scId,exchangeType); } diff --git a/src/main/java/cn/stock/market/web/SiteNewsController.java b/src/main/java/cn/stock/market/web/SiteNewsController.java index 5589ad6..a509522 100644 --- a/src/main/java/cn/stock/market/web/SiteNewsController.java +++ b/src/main/java/cn/stock/market/web/SiteNewsController.java @@ -18,7 +18,7 @@ import cn.stock.market.domain.basic.service.SiteNewsService; import cn.stock.market.utils.ServerResponse; @Controller -@RequestMapping({"/api/market/news/", "/api/hq/news/"}) +@RequestMapping({"/market/api/market/news/", "/market/api/hq/news/","/api/market/news/", "/api/hq/news/"}) @Api(tags="新闻资讯") public class SiteNewsController { private static final Logger log = LoggerFactory.getLogger(SiteNewsController.class); diff --git a/src/main/java/cn/stock/market/web/StockApiController.java b/src/main/java/cn/stock/market/web/StockApiController.java index 2ee8543..1eeaa04 100644 --- a/src/main/java/cn/stock/market/web/StockApiController.java +++ b/src/main/java/cn/stock/market/web/StockApiController.java @@ -56,7 +56,7 @@ import springfox.documentation.annotations.ApiIgnore; @Controller @Api(value = "/StockApiController", tags = "股票行情") -@RequestMapping({"/api/market/stock/", "/api/hq/stock/"}) +@RequestMapping({"/market/api/market/stock/", "/market/api/hq/stock/","/api/market/stock/", "/api/hq/stock/"}) public class StockApiController { private static final Logger log = LoggerFactory.getLogger(StockApiController.class); @@ -233,6 +233,25 @@ public class StockApiController { return this.stockService.getIndiaIndex(); } + @RequestMapping({"getIndiaIndexByToday.do"}) + @ApiOperation(value = "印度--获取指定指数信息", httpMethod = "GET") + @ResponseBody + public ServerResponse getIndiaIndexByToday() { + String INDEX_CODE = "TODAY_INDEX"; + return RequestCacheUtils.cache("getIndiaIndexByToday.do", INDEX_CODE,60000, (string) -> { + return this.stockService.getIndexByBtoday(); + }); + } + @RequestMapping({"getIndiaIndexByEttech.do"}) + @ApiOperation(value = "印度--获取指定指数信息-Ettech", httpMethod = "GET") + @ResponseBody + public ServerResponse getIndiaIndexByEttech() { + String INDEX_CODE = "TODAY_INDEX"; + return RequestCacheUtils.cache("getIndiaIndexByEttech.do", INDEX_CODE, (string) -> { + return this.stockService.getEttechcharts(); + }); + } + //根据股票id查询 股票指数、大盘指数信息 @RequestMapping({"getMarketByStockGid.do"}) @ApiOperation(value = "根据股票id查询 股票指数、大盘指数信息", httpMethod = "GET") diff --git a/src/main/java/cn/stock/market/web/TodayApiController.java b/src/main/java/cn/stock/market/web/TodayApiController.java index 2fb4931..883f0fa 100644 --- a/src/main/java/cn/stock/market/web/TodayApiController.java +++ b/src/main/java/cn/stock/market/web/TodayApiController.java @@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.ResponseBody; @Controller @Api(value = "/TodayApiController", tags = "today股票行情") -@RequestMapping({"/api/market/today/"}) +@RequestMapping({"/market/api/market/today/","/api/market/today/"}) public class TodayApiController { @RequestMapping({"getTopGainers.do"}) diff --git a/src/main/resources/application-base-alpha.yml b/src/main/resources/application-base-alpha.yml index eaf2c47..fb4cc6d 100644 --- a/src/main/resources/application-base-alpha.yml +++ b/src/main/resources/application-base-alpha.yml @@ -17,9 +17,9 @@ spring: datasource: stock-market: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://43.132.212.180:33306/india_stock?useUnicode=true&characterEncoding=utf-8 + url: jdbc:mysql://149.88.86.7:33306/india_stock?useUnicode=true&characterEncoding=utf-8 username: root - password: 33BsUUcnXRYgwt + password: 33BsUUcnXRYgwtIND maxActive: 500 testWhileIdle: true validationQuery: SELECT 1 diff --git a/src/main/resources/stock2guo.properties b/src/main/resources/stock2guo.properties index 245db43..16f7157 100644 --- a/src/main/resources/stock2guo.properties +++ b/src/main/resources/stock2guo.properties @@ -4,8 +4,8 @@ ftp.pass=ftp_vipyingyrt_cn ftp.server.http.prefix=http://ftp.vipyingyrt.cn/ # redis config start -redis1.ip=129.226.172.67 -redis1.port=6379 +redis1.ip=149.88.86.7 +redis1.port=36379 redis1.pwd=nango redis.max.total=20 redis.max.idle=10 @@ -22,7 +22,7 @@ admin.cookie.name=ADMIN_TOKEN agent.key.prefix=SR admin.super.name=18916320007 -admin.auth.email.subject=\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a9\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00b8\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00bf\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a9\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00b9\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0084\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a6\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0098\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0093\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a8\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u009e\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u008d - \u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a6\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0094\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00af\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a4\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00bb\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0098\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a9\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0080\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u009a\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a7\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u009f\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a5\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a9\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00ae\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a4\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00bb\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00b6 +admin.auth.email.subject=鸿鹄易融 - 支付通知邮件 admin.auth.email=navihold800@163.com admin.auth.email.pwd=XY118318asd #cookie config end @@ -105,7 +105,7 @@ fly.pay.callbackurl=http://www.honghoo.top/wap/#/user fly.pay.payurl=https://zf.flyotcpay.com/payment/ -wj.sms.uid=\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a4\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00b8\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0080\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00a6\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u009c\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0083\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0083\u00c3\u0082\u00c2\u0082\u00c3\u0083\u00c2\u0082\u00c3\u0082\u00c2\u00ac001 +wj.sms.uid=一本001 wj.sms.key=d41d8cd98f00b204e980 wj.sms.coding=utf8