├── reportermate
├── __init__.py
├── command_line.py
└── reportermate.py
├── requirements.txt
├── tests
├── expenses-replace.json
├── donations-replace.json
├── story.txt
├── tests.py
├── emissions-template.txt
├── unemployment-sample.txt
├── expenses-template.txt
├── unemployment-template.txt
├── emissions.csv
├── donations-template.txt
├── expenses.csv
├── date-test.csv
└── unemployment.csv
├── .gitignore
├── CHANGES.txt
├── setup.py
├── LICENCE.txt
├── README.rst
└── README.md
/reportermate/__init__.py:
--------------------------------------------------------------------------------
1 | import argparse
2 | from .reportermate import analyseAndRender
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | pydateinfer>=0.3.0
2 | pandas>=0.22.2
3 | pybars3>=0.9.3
4 | simplejson>=3.16.0
--------------------------------------------------------------------------------
/tests/expenses-replace.json:
--------------------------------------------------------------------------------
1 | [
2 | {" MP":""},
3 | {"Mr ":""},
4 | {"Senator the Hon ":""},
5 | {"The Hon ":""}
6 | ]
--------------------------------------------------------------------------------
/tests/donations-replace.json:
--------------------------------------------------------------------------------
1 | {
2 | "replacements":[
3 | {"LIB":"Liberal party"},
4 | {"ALP":"Labor party"},
5 | {"GRN":"Greens"},
6 | {"NAT":"Nationals"}
7 | ]
8 | }
9 |
10 |
11 |
--------------------------------------------------------------------------------
/tests/story.txt:
--------------------------------------------------------------------------------
1 | Australia's unemployment rate has stayed steady at 5.7.
2 |
3 | This is lower than the average unemployment rate for the year to date.
4 |
5 | The total number of employed people increased, with 12122.1 in total.
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled python modules.
2 | *.pyc
3 |
4 | # Folders
5 | /dist/
6 | /venv/
7 | /build/
8 |
9 | # Python egg metadata, regenerated from source files by setuptools.
10 | /*.egg-info
11 |
12 | # Files
13 |
14 | story.txt
--------------------------------------------------------------------------------
/tests/tests.py:
--------------------------------------------------------------------------------
1 | import reportermate
2 |
3 | print(reportermate.analyseAndRender('expenses.csv', 'expenses-template.txt', 'expenses-replace.json'))
4 | print(reportermate.analyseAndRender('unemployment.csv', 'unemployment-template.txt'))
5 | print(reportermate.analyseAndRender('donations.csv', 'donations-template.txt', 'donations-replace.json'))
6 |
--------------------------------------------------------------------------------
/CHANGES.txt:
--------------------------------------------------------------------------------
1 | v0.6.1, 2019-06-29
2 |
3 | -Removed Tableschema from dependancies, now just using dateinfer for guessing dates
4 | -Added a new helper function makeList which adds support for {{#each}} in handlebars
5 | -Changed the commandline argument "replacements" to "options", which still should point to a json file. Replacements should now be under the key "replacements" in the json.
6 |
--------------------------------------------------------------------------------
/tests/emissions-template.txt:
--------------------------------------------------------------------------------
1 | Australia's emissions have {{checkDifferenceBetweenValues ds='default' col='nggiPlusProjections' row1=-1 row2=-2 text='increased to, decreased to, stayed steady at'}} to {{getCellByNumber ds='default' col='nggiPlusProjections' row=-1}} megatonnes of C02.
2 |
3 | This is {{checkAgainstRollingMean col='nggiPlusProjections' row=-1 length=8 text='higher than, lower than, the same as'}} the average of the past two years of emissions.
--------------------------------------------------------------------------------
/tests/unemployment-sample.txt:
--------------------------------------------------------------------------------
1 |
Australia's unemployment rate has {{ increased to | decreased to | stayed steady at }} {{if increase}} {{rate most recent}}.
2 |
3 | This is {{above | below | steady 12 month average}} the 12 month average.
4 |
5 | The total number of people with jobs {{increased to | decreased to | stayed steady at}} {{total jobs}}, according to the {{data source}}.
6 |
7 | Full-time employment {{ increased | decreased | steady }}, while part time employment {{ increased | decreased | steady }}.
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/reportermate/command_line.py:
--------------------------------------------------------------------------------
1 | import argparse
2 | import codecs
3 | from reportermate import analyseAndRender
4 |
5 | parser = argparse.ArgumentParser()
6 | parser.add_argument("data",help="The path to your data csv")
7 | parser.add_argument("template",nargs='?', help="The path to your story template", default='')
8 | parser.add_argument("options",nargs='?', help="A json file defining reportermate options",default='')
9 | args = parser.parse_args()
10 |
11 | def main():
12 | output = analyseAndRender(args.data, args.template, args.options)
13 | print(output)
14 | with codecs.open("story.txt", "w", encoding='utf8') as f:
15 | f.write(output)
--------------------------------------------------------------------------------
/tests/expenses-template.txt:
--------------------------------------------------------------------------------
1 | Australia's politicians spent a total of ${{formatNumber (totalSumOfAllCols ds='default') }} on travel and other expenses, according to recently published figures.
2 | The biggest spender for the travel allowance category was {{getRankedItemDescending ds='default' col="Name" sortBy="Travelling Allowance" row=0}}, followed by {{getRankedItemDescending ds='default' col="Name" sortBy="Travelling Allowance" row=1}}
3 | {{getRankedItemDescending ds='default' col="Name" sortBy="Family Travel Costs" row=0}} claimed the most for family travel costs, spending ${{formatNumber (getRankedItemDescending ds='default' col="Family Travel Costs" sortBy="Family Travel Costs" row=0)}}.
--------------------------------------------------------------------------------
/tests/unemployment-template.txt:
--------------------------------------------------------------------------------
1 | Australia's unemployment rate has {{checkDifferenceBetweenValues ds='default' col='Unemployment rate - trend' row1=-1 row2=-2 text='increased to, decreased to, stayed steady at'}} {{getCellByNumber ds='default' col='Unemployment rate - trend' row=-1}}.
2 |
3 | This is {{checkAgainstRollingMean col='Unemployment rate - trend' row=-1 length=12 text='higher than, lower than, the same as'}} the average unemployment rate for the year to date.
4 |
5 | The total number of employed people {{checkDifferenceBetweenValues ds='default' col='Employed persons total - trend' row1=-1 row2=-2 text='increased, decreased, stayed stayed'}}, with {{getCellByNumber ds='default' col='Employed persons total - trend' row=-1}} in total.
--------------------------------------------------------------------------------
/setup.py:
--------------------------------------------------------------------------------
1 | import os
2 | from setuptools import setup
3 |
4 | setup(name='reportermate',
5 | version='0.6.2',
6 | description='Automated news stories and reports from datasets',
7 | long_description=open('README.rst').read(),
8 | classifiers=[
9 | 'License :: OSI Approved :: MIT License',
10 | 'Programming Language :: Python :: 2',
11 | 'Programming Language :: Python :: 3',
12 | 'Topic :: Scientific/Engineering :: Information Analysis',
13 | ],
14 | keywords='data-analysis text data analysis',
15 | url='https://github.com/nickjevershed/Reportermate-Lib',
16 | author='Nick Evershed',
17 | author_email='nick.evershed@gmail.com',
18 | license='MIT',
19 | entry_points = {
20 | "console_scripts":['reportermate = reportermate.command_line:main']
21 | },
22 | packages=['reportermate'],
23 | install_requires=['pandas','pybars3','pydateinfer','simplejson'],
24 | zip_safe=False)
--------------------------------------------------------------------------------
/LICENCE.txt:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Nick Evershed
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/README.rst:
--------------------------------------------------------------------------------
1 | ReporterMate
2 | ============
3 |
4 | Reportermate is an open source project to `create an automated news
5 | reporting system `__. This library forms the
6 | base of the system, and combines the pandas data analysis library, the
7 | handlebars templating language, and a whole bunch of helper functions to
8 | automate the generation of text reports from data.
9 |
10 | Installation
11 | ------------
12 |
13 | ::
14 |
15 | pip install reportermate
16 |
17 | Usage
18 | -----
19 |
20 | Installing the reportermate lib adds the reportermate function to your
21 | command line.
22 |
23 | ::
24 |
25 | reportermate my-data.csv my-template.txt
26 |
27 | Using this function will take your data and then analyse and render it
28 | according to the template provided.
29 |
30 | To use reportermate from within another python script, import the
31 | analyseAndRender function:
32 |
33 | .. code:: python
34 |
35 | from reportermate import analyseAndRender
36 | analyseAndRender(my-data.csv,my-template.txt)
37 |
38 | Templates
39 | ---------
40 |
41 | Reportermate uses the handlebars template language to define the
42 | analysis of the dataset, and how the results should be rendered into
43 | text. The template functions are the key to generating your text
44 | results.
45 |
46 | *Template function definitions and examples coming soon...*
47 |
--------------------------------------------------------------------------------
/tests/emissions.csv:
--------------------------------------------------------------------------------
1 | quarter,nggiPlusProjections,ccaTo2030,parisErt,totalRemaining,emissionsSource
01/03/05,146.9,,,,NGGI
01/06/05,150.3,,,,NGGI
01/09/05,152.8,,,,NGGI
01/12/05,151.1,,,,NGGI
01/03/06,150.6,,,,NGGI
01/06/06,154.1,,,,NGGI
01/09/06,156.7,,,,NGGI
01/12/06,156,,,,NGGI
01/03/07,143.8,,,,NGGI
01/06/07,144.5,,,,NGGI
01/09/07,150.1,,,,NGGI
01/12/07,145.5,,,,NGGI
01/03/08,144.2,,,,NGGI
01/06/08,145.4,,,,NGGI
01/09/08,152.8,,,,NGGI
01/12/08,149.1,,,,NGGI
01/03/09,143.2,,,,NGGI
01/06/09,145.9,,,,NGGI
01/09/09,147.9,,,,NGGI
01/12/09,148,,,,NGGI
01/03/10,138.6,,,,NGGI
01/06/10,138.5,,,,NGGI
01/09/10,142.4,,,,NGGI
01/12/10,138.4,,,,NGGI
01/03/11,132.5,,,,NGGI
01/06/11,135.1,,,,NGGI
01/09/11,139,,,,NGGI
01/12/11,135.9,,,,NGGI
01/03/12,135.9,,,,NGGI
01/06/12,136.3,,,,NGGI
01/09/12,137.2,,,,NGGI
01/12/12,135.9,,,10100,NGGI
01/03/13,131.3,142.5825,,9968.7,NGGI
01/06/13,133,141.414375,,9835.7,NGGI
01/09/13,133.3,140.24625,,9702.4,NGGI
01/12/13,132.7,139.078125,,9569.7,NGGI
01/03/14,130.9,137.91,,9438.8,NGGI
01/06/14,130,136.741875,,9308.8,NGGI
01/09/14,135.7,135.57375,,9173.1,NGGI
01/12/14,133.3,134.405625,,9039.8,NGGI
01/03/15,131.1,133.2375,,8908.7,NGGI
01/06/15,132.5,132.069375,,8776.2,NGGI
01/09/15,136.2,130.90125,,8640,NGGI
01/12/15,134.5,129.733125,134.51,8505.5,NGGI
01/03/16,133.7,128.565,134.08,8371.8,NGGI
01/06/16,132.8,127.396875,133.65,8239,NGGI
01/09/16,136.63,126.22875,133.22,8102.37,Projections
01/12/16,133.93,125.060625,132.79,7968.44,Projections
01/03/17,135.47,123.8925,132.36,7832.97,Projections
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ReporterMate
2 | =======================
3 |
4 | Reportermate is an open source project to [create an automated news reporting system](http://reportermate.com/). This library forms the base of the system, and combines the pandas data analysis library, the handlebars templating language, and a whole bunch of helper functions to automate the generation of text reports from data.
5 |
6 | Installation
7 | -------------
8 |
9 | ````
10 | pip install reportermate
11 | ````
12 |
13 | Usage
14 | ------
15 |
16 | Installing the reportermate lib adds the reportermate function to your command line.
17 |
18 | ````
19 | reportermate my-data.csv my-template.txt
20 | ````
21 |
22 | Using this function will take your data and then analyse and render it according to the template provided.
23 |
24 | To use reportermate from within another python script, import the analyseAndRender function:
25 |
26 | ````Python
27 | from reportermate import analyseAndRender
28 | analyseAndRender(my-data.csv,my-template.txt)
29 | ````
30 |
31 | Both the commandline and analyseAndRender have an optional third argument, which is the location of an json file defining various reportermate options, eg:
32 |
33 | ````
34 | reportermate my-data.csv my-template.txt my-options.json
35 | ````
36 |
37 | This can be used to replace strings when compiling the final story, and will have futher options added in future such as defininf date columns and formats.
38 |
39 | Most of the work is done by the template through the use of helper functions. To see working examples and templates, check out the tests folder.
40 |
41 | Template helper functions
42 | -----------
43 |
44 | Reportermate uses the handlebars template language to define the analysis of the dataset, and how the results should be rendered into text. The template functions are the key to generating your text results.
45 |
46 | **getCellByNumber**
47 |
48 | Get a specific cell from a dataframe given a dataframe, column label, and row number. Use 'default' for ds unless chaining helper functions.
49 |
50 | ````
51 | {{getCellByNumber ds='default' col='column_name' row='10'}}
52 | ````
53 | **getCellByLabel**
54 |
55 | Get a specific cell from a dataframe given a dataframe, column label, and row label. Use 'default' for ds unless chaining helper functions.
56 |
57 | ````
58 | {{getCellByLabel ds='default' col='column_name' row='row_name'}}
59 | ````
60 |
61 | **checkDifferenceBetweenValues**
62 |
63 | Evaluates the difference between two cells, and returns the corresponding text given a comma-delimited string
64 |
65 | ````
66 | {{checkDifferenceBetweenValues ds='default' col='column_name' row1='1' row2='2' 'higher than,lower than,the same'}}
67 | ````
68 |
69 | **checkAgainstRollingMean**
70 |
71 | Checks a cell from a column against the rolling mean of that column, and returns the corresponding text given a comma-delimited string. Length is the time window to use
72 |
73 | ````
74 | {{checkAgainstRollingMean ds='default' col='column_name' row='1' length='6' 'higher than average,lower than average,the same'}}
75 | ````
76 |
77 | **getRollingMean**
78 |
79 | Returns the rolling mean of a given column for a defined number of periods
80 |
81 | ````
82 | {{getRollingMean ds='default' col='column_name' length='6'}}
83 | ````
84 |
85 | **getDifference**
86 |
87 | Returns the difference between two cells
88 |
89 | ````
90 | {{getDifference ds='default' col='column_name' row1='1' row2='2'}}
91 | ````
92 |
93 | **sortAscending**
94 |
95 | Sorts data based on a given column name in ascending order
96 |
97 | ````
98 | {{sortAscending ds='default' sortBy='column_name'}}
99 | ````
100 |
101 | **sortDescending**
102 |
103 | Sorts data based on a given column name in descending order
104 |
105 | ````
106 | {{sortDescending ds='default' sortBy='column_name'}}
107 | ````
108 |
109 | **getRankedItemDescending**
110 |
111 | Sorts data based on a given column name in descending order, then gets the nth cell value for a given column
112 |
113 | ````
114 | {{getRankedItemDescending ds='default' sortBy='column_name' row='1'}}
115 | ````
116 |
117 | **sumAcrossAllCols**
118 |
119 | Sums values across rows, creates a new column named total. Note - probably breaks if a total column already exists
120 |
121 | ````
122 | {{sumAcrossAllCols ds='default'}}
123 | ````
124 |
125 | **groupBy**
126 |
127 | Groupby column or columns, then perform an operation (sum, count, mean) on the result. eg sum by category
128 |
129 | ````
130 | {{groupBy ds='default' groupByThis='column_name' operator='sum'}}
131 | ````
132 |
133 | **groupByTime**
134 |
135 | Group by the year, month or day and return a specific month, day or year
136 |
137 | ````
138 | {{groupByTime ds='default' groupByThis='column_name' timePeriod='time_period' operator='sum'}}
139 | ````
140 |
141 | **filterBy**
142 |
143 | Returns a new dataframe filtered by the given value/s for the given column/s
144 |
145 | ````
146 | {{filterBy ds='default' cols='column_name1,column_name2' timePeriod='time_period' operator='sum'}}
147 | ````
148 |
149 | **summariseCol**
150 |
151 | Does maths on a specific column, eg sum, mean, count, mode
152 |
153 | ````
154 | {{summariseCol ds='default' col='column_name' operator='sum'}}
155 | ````
156 |
157 | **checkDifferenceBetweenResults**
158 |
159 | Tests greater than, less than, or equal to with two values, and returns a string from a comma-seperated list
160 |
161 | ````
162 | {{checkDifferenceBetweenResults ds='default' val1='1' val2='2' 'higher than,lower than,the same'}}
163 | ````
164 |
165 | **uniqueValues**
166 |
167 | ````
168 | {{uniqueValues ds='default' col='column_name'}}
169 | ````
170 |
171 | **summariseColByTimePeriod**
172 |
173 | Groups by a given time period, then performs the given operation. eg. get the monthly average
174 |
175 | ````
176 | {{summariseColByTimePeriod ds='default' dateCol='column_name' col='column_name' freq='6' operator='mean'}}
177 | ````
178 |
179 | **makeList**
180 |
181 | Turns a dataframe into a list of dicts, so it can be accessed by the default pybars iterator functions like {{#each}}
182 |
183 | ````
184 | {{makeList ds='dataframe' limit=None}}
185 | ````
186 |
--------------------------------------------------------------------------------
/tests/donations-template.txt:
--------------------------------------------------------------------------------
1 | Australian political parties declared donations worth ${{formatNumber (summariseCol ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Donation,2016-2017') col='AmountReceived' operator='sum')}} in the 2016-17 financial year, according to the latest figures from the Australian Electoral Commission.
2 |
3 | This amount is {{checkDifferenceBetweenResults val1=(summariseCol ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Donation,2016-2017') col='AmountReceived' operator='sum') val2=(summariseCol ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs' filterByThis='Donation') groupByThis='period' operator='sum') col='AmountReceived' operator='mean') text='higher than,lower than,the same as'}} usual, with donations averaging ${{formatNumber (summariseCol ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs' filterByThis='Donation') groupByThis='period' operator='sum') col='AmountReceived' operator='mean')}} per year over the past {{uniqueValues ds='default' col='period'}} years.
4 |
5 | The largest donation overall, ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Donation,2016-2017') col='AmountReceived' sortBy='AmountReceived' row=0)}}, was made by {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Donation,2016-2017') col='PayerClientNm' sortBy='AmountReceived' row=0}} to the {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Donation,2016-2017') col='partyGroup' sortBy='AmountReceived' row=0}}.
6 |
7 | The party with the most donations was the {{getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Donation,2016-2017') groupByThis='partyGroup' operator='sum') col='partyGroup' sortBy='AmountReceived' row=0}}, which declared ${{formatNumber (getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Donation,2016-2017') groupByThis='partyGroup' operator='sum') col='AmountReceived' sortBy='AmountReceived' row=0)}} followed by the {{getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Donation,2016-2017') groupByThis='partyGroup' operator='sum') col='partyGroup' sortBy='AmountReceived' row=1}} with ${{formatNumber (getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Donation,2016-2017') groupByThis='partyGroup' operator='sum') col='AmountReceived' sortBy='AmountReceived' row=1)}}.
8 |
9 | The {{getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Other Receipt,2016-2017') groupByThis='partyGroup' operator='sum') col='partyGroup' sortBy='AmountReceived' row=0}} also declared ${{formatNumber (getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Other Receipt,2016-2017') groupByThis='partyGroup' operator='sum') col='AmountReceived' sortBy='AmountReceived' row=0)}} in 'other receipts', which includes money received from things like investments, but also includes money from party fundraisers where people pay for event tickets in lieu of donations.
10 |
11 | The {{getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Other Receipt,2016-2017') groupByThis='partyGroup' operator='sum') col='partyGroup' sortBy='AmountReceived' row=1}} declared ${{formatNumber (getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Other Receipt,2016-2017') groupByThis='partyGroup' operator='sum') col='AmountReceived' sortBy='AmountReceived' row=1)}} in other receipts, the {{getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Other Receipt,2016-2017') groupByThis='partyGroup' operator='sum') col='partyGroup' sortBy='AmountReceived' row=2}} declared ${{formatNumber (getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Other Receipt,2016-2017') groupByThis='partyGroup' operator='sum') col='AmountReceived' sortBy='AmountReceived' row=2)}}, and the {{getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Other Receipt,2016-2017') groupByThis='partyGroup' operator='sum') col='partyGroup' sortBy='AmountReceived' row=3}} declared ${{formatNumber (getRankedItemDescending ds=(groupBy ds=(filterBy ds='default' cols='ReceiptTyDs,period' filterByThis='Other Receipt,2016-2017') groupByThis='partyGroup' operator='sum') col='AmountReceived' sortBy='AmountReceived' row=3)}}.
12 |
13 | The top five donors to the Liberal party were:
14 |
15 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='PayerClientNm' sortBy='AmountReceived' row=0}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='AmountReceived' sortBy='AmountReceived' row=0) }}
16 |
17 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='PayerClientNm' sortBy='AmountReceived' row=1}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='AmountReceived' sortBy='AmountReceived' row=1) }}
18 |
19 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='PayerClientNm' sortBy='AmountReceived' row=2}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='AmountReceived' sortBy='AmountReceived' row=2) }}
20 |
21 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='PayerClientNm' sortBy='AmountReceived' row=3}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='AmountReceived' sortBy='AmountReceived' row=3) }}
22 |
23 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='PayerClientNm' sortBy='AmountReceived' row=4}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,LIB') col='AmountReceived' sortBy='AmountReceived' row=4) }}
24 |
25 | The top five donors to the Labor party were:
26 |
27 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='PayerClientNm' sortBy='AmountReceived' row=0}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='AmountReceived' sortBy='AmountReceived' row=0) }}
28 |
29 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='PayerClientNm' sortBy='AmountReceived' row=1}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='AmountReceived' sortBy='AmountReceived' row=1) }}
30 |
31 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='PayerClientNm' sortBy='AmountReceived' row=2}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='AmountReceived' sortBy='AmountReceived' row=2) }}
32 |
33 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='PayerClientNm' sortBy='AmountReceived' row=3}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='AmountReceived' sortBy='AmountReceived' row=3) }}
34 |
35 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='PayerClientNm' sortBy='AmountReceived' row=4}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,ALP') col='AmountReceived' sortBy='AmountReceived' row=4) }}
36 |
37 | The top five donors to the Greens were:
38 |
39 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='PayerClientNm' sortBy='AmountReceived' row=0}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='AmountReceived' sortBy='AmountReceived' row=0) }}
40 |
41 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='PayerClientNm' sortBy='AmountReceived' row=1}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='AmountReceived' sortBy='AmountReceived' row=1) }}
42 |
43 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='PayerClientNm' sortBy='AmountReceived' row=2}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='AmountReceived' sortBy='AmountReceived' row=2) }}
44 |
45 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='PayerClientNm' sortBy='AmountReceived' row=3}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='AmountReceived' sortBy='AmountReceived' row=3) }}
46 |
47 | • {{getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='PayerClientNm' sortBy='AmountReceived' row=4}} - ${{formatNumber (getRankedItemDescending ds=(filterBy ds='default' cols='ReceiptTyDs,period,partyGroup' filterByThis='Donation,2016-2017,GRN') col='AmountReceived' sortBy='AmountReceived' row=4) }}
48 |
49 | This story was generated by ReporterMate, an automated data reporting system. You can report errors or bugs to nick.evershed@gmail.com or @nickevershed.
--------------------------------------------------------------------------------
/reportermate/reportermate.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import pandas as pd
4 | import dateinfer
5 | import os
6 | from datetime import datetime
7 | from pybars import Compiler
8 | import simplejson as json
9 | import io
10 | import csv
11 | import itertools
12 |
13 | # import global_stuff as g
14 | # import helpers as _hlp
15 |
16 | df = None
17 |
18 | # Helper function for strings
19 |
20 | def _cleanString(string):
21 | return string.lower().strip()
22 |
23 | # Get information about the data
24 |
25 | def _getDataInfo(fileObj):
26 |
27 | sample = []
28 |
29 | with open(fileObj) as csvFile:
30 | reader = csv.reader(csvFile)
31 | headers = next(reader)
32 | for row in itertools.islice(reader, 100):
33 | sample.append(row)
34 |
35 | # If column has a date-like word in it, try getting the date format
36 |
37 | dateHeaders = ['year','month','fy','day','date']
38 | dateMatches = {"%a":"Day","%A":"Day","%w":"Day","%d":"Day","%-d":"Day","%b":"Month","%B":"Month","%m":"Month","%-m":"Month","%y":"Year","%Y":"Year"}
39 |
40 | possibleDates = []
41 |
42 | for i, header in enumerate(headers):
43 | for dateString in dateHeaders:
44 | if dateString == _cleanString(header):
45 | # print("Possible date column:", header)
46 | possibleDates.append(i)
47 |
48 | dateColumns = []
49 |
50 | if possibleDates:
51 | hyphenReplace = False
52 | for colIndex in possibleDates:
53 | dateSample = []
54 | for row in sample:
55 | # Work around because dateinfer breaks on dates like Jul-1976 and I don't know why
56 |
57 | if "-" in row[colIndex]:
58 | hyphenReplace = True
59 | dateSample.append(row[colIndex].replace("-","/"))
60 | else:
61 | dateSample.append(row[colIndex])
62 | # print dateSample
63 | dateGuess = dateinfer.infer(dateSample).replace("%M","%y") # hack to stop years showing as minutes
64 |
65 | # For single days, months and years
66 | # print(dateGuess)
67 |
68 | # Work around because dateinfer breaks on dates like Jul-1976 and I don't know why
69 |
70 | if hyphenReplace:
71 | dateGuess = dateGuess.replace("/","-")
72 |
73 | dateColumns.append({"index":colIndex,"format":dateGuess})
74 |
75 | return {"dateColumns":dateColumns}
76 |
77 | def _makeDataFrame(fileObj):
78 |
79 | # Get the headers and more detailed information about column types
80 |
81 | fileInfo = _getDataInfo(fileObj)
82 |
83 | # Work out which ones are columns with a proper date
84 |
85 | dateColumns = fileInfo['dateColumns']
86 |
87 | # Read the CSV into a pandas dataframe
88 |
89 | newDf = pd.read_csv(fileObj)
90 |
91 | # print(newDf.dtypes)
92 |
93 | # Parse any dates in place that need to be parsed
94 |
95 | if dateColumns:
96 | for obj in dateColumns:
97 | dateFormat = obj['format']
98 | dateIndex = obj['index']
99 | newDf[newDf.columns[dateIndex]] = pd.to_datetime(newDf[newDf.columns[dateIndex]], format=dateFormat)
100 |
101 | return newDf
102 |
103 | def _replaceStrings(replacements,output):
104 | for replacement in replacements:
105 | for key, value in replacement.items():
106 | output = output.replace(key, value)
107 |
108 | return output
109 |
110 | # This is the main function for doing things
111 |
112 | def analyseAndRender(dataLocation,templateLocation,optionsLocation=""):
113 | global df
114 |
115 | if optionsLocation != "":
116 | with open(optionsLocation) as json_file:
117 | options = json.load(json_file)
118 |
119 | # For local csv
120 |
121 | if ".csv" in dataLocation and "https://docs.google.com" not in dataLocation:
122 | df = _makeDataFrame(dataLocation)
123 |
124 | # For google sheets as csv
125 |
126 | elif "https://docs.google.com" in dataLocation:
127 | print("It's a google sheet")
128 |
129 | # If its already a dataframe
130 |
131 | else:
132 | df = dataLocation
133 |
134 | with io.open(templateLocation, 'r', encoding='utf-8') as tempSource:
135 | compiler = Compiler()
136 | template = compiler.compile(tempSource.read())
137 |
138 | helpers = {
139 | "getCellByNumber":getCellByNumber,
140 | "getCellByLabel":getCellByLabel,
141 | "checkDifferenceBetweenValues":checkDifferenceBetweenValues,
142 | "checkAgainstRollingMean":checkAgainstRollingMean,
143 | "getRollingMean":getRollingMean,
144 | "getDifference":getDifference,
145 | "sortAscending":sortAscending,
146 | "sortDescending":sortDescending,
147 | "getRankedItemDescending":getRankedItemDescending,
148 | "sumAcrossAllCols":sumAcrossAllCols,
149 | "totalSumOfAllCols":totalSumOfAllCols,
150 | "formatNumber":formatNumber,
151 | "groupBy":groupBy,
152 | "groupByTime":groupByTime,
153 | "filterBy":filterBy,
154 | "summariseCol":summariseCol,
155 | "checkDifferenceBetweenResults":checkDifferenceBetweenResults,
156 | "uniqueValues":uniqueValues,
157 | "summariseColByTimePeriod":summariseColByTimePeriod,
158 | "makeList":makeList
159 | }
160 |
161 | output = template(df,helpers=helpers)
162 |
163 | # String replacements
164 | if optionsLocation != "":
165 | if 'replacements' in options:
166 | output = _replaceStrings(options['replacements'], output)
167 |
168 | # print(output.encode('utf-8'))
169 | return output
170 |
171 | def _getCurrentDataframe(ds):
172 | if type(ds) is str:
173 | return df
174 | else:
175 | return ds
176 |
177 | def formatNumber(con, num):
178 | if num >= 1000000:
179 | num = num / 1000000.0
180 |
181 | if num % 1 != 0:
182 | return "{0:,.1f}".format(num) + "m"
183 | else:
184 | return "{0:,.0f}".format(num) + "m"
185 | else:
186 | if num % 1 != 0:
187 | return "{0:,.1f}".format(num)
188 | else:
189 | return "{0:,.0f}".format(num)
190 |
191 | # All the helper functions required to run pandas functions on the data from the template
192 |
193 | # Get a specific cell from a dataframe given a dataframe, column label, and row number
194 |
195 | def getCellByNumber(con, ds, col, row):
196 | currDf = _getCurrentDataframe(ds)
197 | return currDf[col].iloc[row]
198 |
199 | # Get a specific cell from a dataframe given a dataframe, column label, and row label
200 |
201 | def getCellByLabel(con, ds, col, row):
202 | currDf = _getCurrentDataframe(ds)
203 | return currDf[col].loc[row]
204 |
205 | # Get the column based on the vale of a row
206 |
207 | def getColByRowValue(con, ds, col1, value, col2):
208 | currDf = _getCurrentDataframe(ds)
209 | return currDf[currDf[col1] == value][col2].iloc[0]
210 |
211 | # Sorts dataframe based on a given column name in ascending order
212 |
213 | def sortAscending(con, ds, sortBy):
214 | result = ds.sort_values(sortBy, True)
215 | return result
216 |
217 | # Sorts dataframe based on a given column name in ascending order, then gets the nth cell value for a given column
218 |
219 | def getRankedItemAscending(con, ds, col, sortBy, row):
220 | currDf = _getCurrentDataframe(ds)
221 | sortedDf = currDf.sort_values(sortBy)
222 | result = getCell(sortedDf, col, row)
223 | return result
224 |
225 | # Sorts dataframe based on a given column name in descending order
226 |
227 | def sortDescending(con, ds, sortBy):
228 | result = ds.sort_values(sortBy,ascending=False)
229 | return result
230 |
231 | # Sorts dataframe based on a given column name in descending order, then gets the nth cell value for a given column
232 |
233 | def getRankedItemDescending(con, ds, col, sortBy, row):
234 | currDf = _getCurrentDataframe(ds)
235 | sortedDf = currDf.sort_values(sortBy,ascending=False)
236 | result = sortedDf[col].iloc[row]
237 | return result
238 |
239 | # Sorts dataframe based on a given column name in descending order, then gets the rank of a specific cell
240 |
241 | def getRankOfItemDescending(con, ds, col, sortBy, row):
242 | currDf = _getCurrentDataframe(ds)
243 | sortedDf = currDf.sort_values(sortBy,ascending=False)
244 | result = sortedDf[col].iloc[row]
245 | return result
246 |
247 | # Does maths on a specific column, eg sum, mean, count, mode
248 |
249 | def summariseCol(con,ds,col,operator):
250 | currDf = _getCurrentDataframe(ds)
251 | result = getattr(currDf[col], operator)()
252 | return result
253 |
254 | # Get monthly average for a col
255 |
256 | def summariseColByTimePeriod(con,ds,dateCol,col,freq,operator):
257 | currDf = _getCurrentDataframe(ds)
258 | dg = currDf.groupby(currDf['date'].dt.month, as_index=False)
259 | # dg = currDf.groupby(currDf[dateCol].dt[freq], as_index=False)
260 | result = getattr(dg, operator)()
261 | return result
262 |
263 | # Sums values across rows, creates a new column named total. Note - probably breaks if a total column already exists
264 |
265 | def sumAcrossAllCols(con, ds):
266 | currDf = _getCurrentDataframe(ds)
267 | totalColName = 'total'
268 | newDf = currDf
269 | if 'total' in newDf:
270 | totalColName = 'newTotal'
271 | newDf[totalColName] = newDf.sum(axis=1)
272 | return newDf
273 |
274 | # Sum of the total column
275 |
276 | def totalSumOfAllCols(con, ds):
277 | currDf = _getCurrentDataframe(ds)
278 | totalColName = 'total'
279 | newDf = currDf
280 | if 'total' in newDf:
281 | totalColName = 'newTotal'
282 | newDf[totalColName] = newDf.sum(axis=1)
283 | return newDf[totalColName].sum()
284 |
285 | def sumAcrossSpecificCols(con, ds, cols):
286 | totalColName = 'total'
287 |
288 | if 'total' in df.columns:
289 | totalColName = 'newTotal'
290 |
291 | df[totalColName] = df[cols].sum(axis=1)
292 | return df
293 |
294 | # Evaluates the difference between two cells, and returns the corresponding text given a comma-delimited string
295 |
296 | def checkDifferenceBetweenValues(con, ds, col, row1, row2, text):
297 | currDf = _getCurrentDataframe(ds)
298 |
299 | val1 = currDf[col].iloc[row1]
300 | val2 = currDf[col].iloc[row2]
301 | textList = text.split(",")
302 |
303 | if val1 > val2:
304 | # eg gone up
305 | return textList[0]
306 |
307 | if val1 < val2:
308 | # eg dropped
309 | return textList[1]
310 |
311 | if val1 == val2:
312 | # eg stayed the same
313 | return textList[2]
314 |
315 | def checkDifferenceBetweenResults(con, val1, val2, text):
316 |
317 | textList = text.split(",")
318 |
319 | if val1 > val2:
320 | # eg is higher than
321 | return textList[0]
322 |
323 | if val1 < val2:
324 | # eg is lower than
325 | return textList[1]
326 |
327 | if val1 == val2:
328 | # eg is the same
329 | return textList[2]
330 |
331 | # Checks a cell from a column against the rolling mean of that column
332 |
333 | def checkAgainstRollingMean(con, col, row, length, text):
334 | textList = text.split(",")
335 | val = df[col].iloc[row]
336 | mean = df[col].rolling(window=length).mean().iloc[-1]
337 | if val > mean:
338 | return textList[0]
339 | if val < mean:
340 | return textList[1]
341 | if val == mean:
342 | return textList[2]
343 |
344 | # Returns the rolling mean for a defined number of periods
345 |
346 | def getRollingMean(con, col, length):
347 | mean = df[col].rolling(window=length).mean().iloc[-1]
348 | return mean
349 |
350 | # Returns the difference between two cells
351 |
352 | def getDifference(con, col, row1, row2):
353 | val1 = df[col].iloc[row1]
354 | val2 = df[col].iloc[row2]
355 | return val1 - val2
356 |
357 | # Groupby column or columns, then perform an operation on the result. eg sum by category
358 |
359 | def groupBy(con, ds, groupByThis, operator):
360 | currDf = _getCurrentDataframe(ds)
361 |
362 | if "," in groupByThis:
363 | groupByThis = groupByThis.split(",")
364 | else:
365 | groupByThis = [groupByThis]
366 |
367 | dg = currDf.groupby(groupByThis, as_index=False)
368 | result = getattr(dg, operator)()
369 | return result
370 |
371 | # Group by the year, month or day and return a specific month, day or year
372 |
373 | def groupByTime(con, ds, groupByThis, timePeriod, operator):
374 |
375 | currDf = _getCurrentDataframe(ds)
376 | dg = currDf.groupby(getattr(currDf[groupByThis].dt, timePeriod))
377 | result = getattr(dg, operator)()
378 | return result
379 |
380 | def uniqueValues(con, ds, col):
381 | currDf = _getCurrentDataframe(ds)
382 | result = currDf[col].nunique()
383 | return result
384 |
385 | def makeList(con, ds, limit=None):
386 |
387 | currDf = _getCurrentDataframe(ds)
388 | if limit != None:
389 | return currDf.to_dict('records')[:limit]
390 | else:
391 | return currDf.to_dict('records')
392 |
393 | # Returns a new dataframe filtered by the given value/s for the given column/s
394 |
395 | def filterBy(con, ds, cols, filterByThis):
396 | currDf = _getCurrentDataframe(ds)
397 |
398 | # For multi-column filtering
399 |
400 | if "," in filterByThis:
401 | filterByThis = filterByThis.split(",")
402 | cols = cols.split(",")
403 |
404 | queryStr = ''
405 | for i in range(0, len(cols)):
406 | join = ' and '
407 | if i == len(cols) - 1:
408 | join = ''
409 | queryStr = queryStr + cols[i] + ' == "' + filterByThis[i] + '"' + join
410 |
411 | result = currDf.query(queryStr)
412 | return result
413 |
414 | # For single column filtering
415 |
416 | else:
417 | result = currDf.loc[currDf[cols] == filterByThis]
418 | return result
419 |
420 |
--------------------------------------------------------------------------------
/tests/expenses.csv:
--------------------------------------------------------------------------------
1 | Name,Home Base,Travelling Allowance,Overseas Travel,Domestic Scheduled Fares,Charter,Car Costs,Office Facilities,Office Administrative Costs,Telecommunications,Family Travel Costs
Dr Andrew Southcott,Adelaide,0,0,0,0,0,1638,0,0,0
Dr Anne Aly MP,Perth,10191,0,17253,0,5847,118645,29801,1836,8603
Dr Dennis Jensen,Perth,0,0,0,0,2199,9212,49244,54,1562
Dr Jim Chalmers MP,Logan,11222,0,37709,0,9415,66809,102713,3524,679
Dr John McVeigh MP,Toowoomba,10867,0,11129,0,3836,48995,12378,1601,13811
Dr Mike Freelander MP,Sydney,6894,0,0,0,2806,92917,48499,1563,350
Mr Adam Bandt MP,Melbourne,6900,0,5562,0,11320,85580,112849,4080,598
Mr Andrew Broad MP,Red Cliffs,14290,0,10095,8289,8211,68806,113767,7454,3541
Mr Andrew Gee MP,Orange,9372,0,0,0,10282,87356,24374,2180,0
Mr Andrew Giles MP,Clifton Hill,10536,0,16680,0,11579,72477,58435,2013,0
Mr Andrew Hastie MP,Perth,9654,0,26790,0,11879,75577,49216,2950,10309
Mr Andrew Laming MP,Cleveland,3580,7260,15999,0,5643,47932,175928,2952,9523
Mr Andrew Nikolic AM CSC,Launceston,0,0,0,0,1210,25075,68403,1749,0
Mr Andrew Wallace MP,Alexandra Headland,11663,0,15985,0,4552,50519,32584,1890,9713
Mr Andrew Wilkie MP,Hobart,10163,0,12810,0,8891,61999,99424,4396,0
Mr Ben Morton MP,Perth,10717,0,27517,0,6255,128752,45865,2209,17737
Mr Bert van Manen MP,Cornubia,9772,0,13681,0,8824,50237,164469,2917,3784
Mr Brett Whiteley,Squeaking Point,0,0,0,2688,5290,3095,41067,2003,0
Mr Brian Mitchell MP,Sorell,9363,0,13991,0,5968,32077,19498,3092,6461
Mr Chris Crewther MP,Frankston,9623,0,14875,0,8957,42718,55141,3734,7965
Mr Chris Hayes MP,Leumeah,12114,0,334,0,8450,57570,172041,3168,2746
Mr Clive Palmer,Yaroomba,0,0,0,0,0,2260,0,0,0
Mr Craig Kelly MP,Sydney,11037,0,1452,0,3481,57009,139645,3169,0
Mr David Coleman MP,Cronulla,7728,0,1124,0,2653,42664,56154,4011,0
Mr David Littleproud MP,Warwick,23984,0,13830,40061,11652,52018,19676,2283,4958
Mr Eric Hutchinson,Launceston,516,0,66,2364,3018,4146,72566,3436,0
Mr Ewen Jones,Townsville,0,0,924,155,1574,4170,70582,360,0
Mr George Christensen MP,Mackay,12806,0,19722,0,10596,68822,91374,1834,0
Mr Glenn Lazarus,Brisbane,0,0,1157,0,3932,-59010,97453,0,1148
Mr Graham Perrett MP,Moorooka,6339,580,16821,0,10501,111758,132773,2030,-7202
Mr Ian Goodenough MP,Perth,11437,0,22558,0,8678,91877,168916,3038,4037
Mr Jason Falinski MP,Sydney,7995,0,1725,0,637,83214,37703,2404,4171
Mr Jason Wood MP,Mount Dandenong,10206,0,0,0,5132,68066,128400,2721,0
Mr Joe Bullock,Perth,0,0,0,0,0,253,0,0,1509
Mr John Alexander OAM MP,Sydney,7728,0,0,0,2791,116986,91407,2958,334
Mr John Madigan,Ballarat,2195,0,0,0,1825,3280,19699,-1499,0
Mr Josh Wilson MP,Fremantle,10994,0,40601,0,6650,66854,59125,2735,12706
Mr Julian Hill MP,Notting Hill,11028,0,14614,0,8886,73180,129332,4627,2699
Mr Julian Leeser MP,Pennant Hills,8550,0,2105,0,3291,64919,105680,1985,2104
Mr Ken O'Dowd MP,Gladstone,17439,0,22159,3597,10847,83336,110303,4193,370
Mr Kevin Hogan MP,Lismore,11523,0,13091,0,16937,53988,127301,4354,5443
Mr Llew O'Brien MP,Gympie,11658,0,11352,0,9487,37432,74454,2050,10247
Mr Luke Gosling OAM MP,Darwin,10724,0,27905,0,3515,46985,37814,1647,5192
Mr Luke Howarth MP,Clontarf,9654,0,11718,0,7822,50214,155864,3566,3193
Mr Luke Simpkins,Perth,0,0,0,0,1572,4662,64304,93,0
Mr Mark Coulton MP,Warialda,19466,0,7564,63324,19132,74759,84070,3550,4775
Mr Matt Keogh MP,Kelmscott,11162,0,38817,0,3273,68680,125034,2477,3133
Mr Matt Williams,Adelaide,0,0,0,0,947,2070,85591,3603,0
Mr Milton Dick MP,Brisbane,11288,0,22465,0,8924,62158,38178,2080,5378
Mr Nick Champion MP,Adelaide,9350,0,21867,0,11162,54823,105192,4692,8277
Mr Nickolas Varvaris,Blakehurst,0,0,0,0,0,4647,18738,77,0
Mr Pat Conroy MP,Newcastle,12429,0,10078,0,11262,59858,126227,2879,0
Mr Peter Khalil MP,Melbourne,9648,0,12620,0,9483,34577,94079,4416,13207
Mr Rick Wilson MP,Albany,17776,0,29487,44415,28841,101650,142399,6395,14146
Mr Ricky Muir,Denison,1660,0,0,0,1691,6083,1291,-372,0
Mr Rob Mitchell MP,Melbourne,7173,0,11793,0,13754,85423,136096,4381,1459
Mr Robert Simms,Adelaide,397,0,0,0,0,1425,18615,960,0
Mr Ross Hart MP,Launceston,11701,0,12997,0,7871,74271,18333,2236,5097
Mr Ross Vasta MP,Brisbane,8553,0,13588,0,2254,45368,162122,2782,3910
Mr Rowan Ramsey MP,Kimba,25158,0,21615,25803,20144,67236,86881,7662,3957
Mr Russell Broadbent MP,Pakenham,8553,0,8751,0,13086,40927,46036,2669,1377
Mr Russell Matheson,Blairmount,0,0,0,0,128,3845,167846,0,0
Mr Scott Buchholz MP,Boonah,9586,0,20063,0,12490,49170,108928,1879,740
Mr Sean Edwards,Clare,0,0,928,0,598,5120,38170,1940,0
Mr Stephen Jones MP,Wollongong,12672,0,15439,0,10817,59459,74407,2536,0
Mr Steve Georganas MP,Adelaide,10597,0,18790,0,7323,52110,42742,65,0
Mr Steve Irons MP,Perth,9933,0,22190,0,1074,68651,122931,2271,4599
Mr Ted O'Brien MP,Buderim,9378,0,8954,0,2851,64659,22369,1482,2447
Mr Tim Hammond MP,Perth,9542,0,37063,0,5993,66030,33220,1690,10234
Mr Tim Watts MP,Melbourne,6348,0,12957,0,6973,52458,82301,2233,2497
Mr Tim Wilson MP,Brighton,7711,0,23037,0,4414,67202,89626,3745,2755
Mr Tony Pasin MP,Mount Gambier,13875,0,17281,14582,18345,116411,107156,8663,6697
Mr Tony Zappia MP,Adelaide,11130,0,7548,0,2169,63663,122582,3910,1064
Mr Trent Zimmerman MP,Sydney,8829,0,2337,0,7618,136505,87747,1733,0
Mr Trevor Evans MP,Brisbane,8823,0,14517,0,1550,53774,52686,1538,3406
Mr Zhenya Wang,Perth,2406,0,2699,2182,244,4376,34254,145,1426
Mrs Ann Sudmalis MP,Nowra,5520,0,0,0,8246,44957,58909,2420,0
Mrs Karen McNamara,Hamlyn Terrace,0,0,0,0,1869,8724,112942,784,0
Mrs Louise Markus,Riverstone,0,0,0,0,562,2903,63371,159,0
Mrs Lucy Wicks MP,Gosford,8001,0,1275,0,3222,73014,169690,3006,1078
Mrs Natasha Griggs,Darwin,0,0,0,0,0,4067,106853,771,0
Ms Anna Burke,Melbourne,0,0,581,0,0,13847,29270,-68,-1725
Ms Anne McEwen,Adelaide,0,0,0,0,2068,5670,28099,2492,0
Ms Anne Stanley MP,Sydney,9645,0,0,0,3545,45821,35586,2106,0
Ms Cathy McGowan AO MP,Indigo Valley,8014,0,49,0,10977,58383,89019,5342,0
Ms Cathy O'Toole MP,Townsville,8538,0,10353,0,4990,41139,8594,1080,6133
Ms Clare O'Neil MP,Melbourne,2484,0,5280,0,1889,75664,107355,2397,1888
Ms Emma Husar MP,Penrith,9093,0,911,0,7935,84195,74056,978,581
Ms Emma McBride MP,The Entrance,8556,0,6650,0,3476,45125,34339,1627,0
Ms Fiona Scott,Penrith,0,0,0,0,2593,2113,22213,95,0
Ms Gai Brodtmann MP,Canberra,1366,12360,8186,0,6477,63284,73023,2343,0
Ms Jill Hall,Belmont,0,0,0,0,169,182,646,0,0
Ms Joanna Lindgren,Brisbane,582,0,1366,0,1187,8645,13582,971,1294
Ms Joanne Ryan MP,Werribee,8823,0,12822,0,6796,70498,22724,2215,0
Ms Julia Banks MP,Melbourne,9927,0,14699,0,7257,22189,5938,2647,4511
Ms Julie Owens MP,Parramatta,6342,0,794,0,2601,93712,98308,3705,0
Ms Justine Keay MP,Devonport,12017,0,21234,0,10283,33450,22335,3005,3598
Ms Lisa Chesters MP,Bendigo,9941,0,9129,0,12801,57116,91313,3888,0
Ms Madeleine King MP,Rockingham,12987,0,42167,0,3363,76475,105918,2027,16752
Ms Maria Vamvakinou MP,Northcote,5520,0,9887,0,8441,44624,34893,3615,0
Ms Melissa Price MP,Perth,22987,0,37502,46676,14972,98013,138423,4608,10365
Ms Meryl Swanson MP,Buchanan,9938,0,7821,0,10630,64878,70120,3338,5842
Ms Michelle Landry MP,Yeppoon,14197,0,18215,5630,8531,81313,108956,4016,1790
Ms Michelle Rowland MP,Glenwood,11748,0,18757,0,23974,62521,118960,3737,8418
Ms Nicolle Flint MP,Adelaide,9214,0,13135,0,5713,35414,30809,891,0
Ms Nola Marino MP,Bunbury,10481,6907,37593,0,22476,67733,152894,3019,0
Ms Nova Peris OAM,Darwin,429,0,-1911,18675,2727,8153,19327,818,-422
Ms Rebekha Sharkie MP,Birdwood,8550,0,9678,0,7894,41149,36363,1622,773
Ms Sarah Henderson MP,Barwon Heads,8004,0,11987,0,14601,53696,99269,3719,816
Ms Sharon Claydon MP,Newcastle,9657,0,4123,0,2030,55693,64848,3179,0
Ms Susan Lamb MP,Dakabin,10433,3424,6258,0,1829,40297,3226,2023,6077
Ms Susan Templeman MP,Hazelbrook,10019,0,3219,0,6377,74772,26387,1921,121
Ms Terri Butler MP,Brisbane,11206,0,25764,0,9379,76254,118017,2696,0
Senator Alex Gallacher,Adelaide,11162,6907,15715,0,11987,34250,40585,3477,6322
Senator Anne Urquhart,Ulverstone,15051,0,27153,0,12859,33913,69412,5250,0
Senator Anthony Chisholm,Brisbane,8561,0,25053,0,6362,23980,1493,1116,8147
Senator Barry O'Sullivan,Toowoomba,16840,-6067,15055,18750,1153,54095,79463,4250,8679
Senator Brian Burston,Coal Point,10862,0,1224,0,4480,29758,2534,1326,0
Senator Bridget McKenzie,Ballarat,23583,0,25362,0,19179,69698,67387,2740,5144
Senator Carol Brown,Hobart,11045,0,19415,0,10884,48966,25307,5112,2542
Senator Catryna Bilyk,Hobart,10319,0,14382,0,12807,62509,91522,4023,1541
Senator Chris Back,Perth,13019,0,39818,3400,10062,63327,9086,3085,8434
Senator Chris Ketter,Brisbane,13923,0,24318,5771,12892,50755,34158,2578,4760
Senator Claire Moore,Brisbane,18725,189,48914,7381,14468,59178,58569,4087,0
Senator Cory Bernardi,Adelaide,2705,76637,11517,0,9317,61449,32837,2838,3650
Senator David Bushby,Hobart,18847,0,25347,0,22114,44304,67742,3902,6082
Senator David Fawcett,Adelaide,8685,0,25354,711,11374,38399,26907,1577,1149
Senator David Leyonhjelm,Sydney,6634,0,6683,0,4393,57174,84607,2398,0
Senator Dean Smith,Perth,12918,0,35259,9218,13700,91352,48797,6270,0
Senator Deborah O'Neill,Gosford,15492,0,8519,-11844,5791,67685,50710,4222,1239
Senator Derryn Hinch,Melbourne,7992,0,20854,0,4393,54356,2119,3681,0
Senator Gavin Marshall,Melbourne,10779,0,16553,178,9905,59122,37260,2465,847
Senator Glenn Sterle,Perth,13165,6907,39731,2961,13993,54341,60707,3771,0
Senator Helen Polley,Launceston,18302,0,31115,0,16208,46253,75353,5162,2214
Senator Jacqui Lambie,Burnie,18746,0,34144,0,12350,33728,51927,3474,0
Senator James Paterson,Melbourne,11314,0,5878,0,10843,21756,35163,1676,566
Senator Jane Hume,Melbourne,12276,0,12887,0,9048,16422,11334,2413,0
Senator Janet Rice,Melbourne,10700,0,7749,0,1865,57424,91719,2186,0
Senator Jenny McAllister,Sydney,10135,0,13491,0,9992,59238,38266,1980,2463
Senator John Williams,Inverell,18484,0,17409,5679,16363,39218,30214,3774,2692
Senator Jonathon Duniam,Hobart,13999,0,19657,0,7872,7987,5397,1664,3631
Senator Katy Gallagher,Canberra,1554,0,6071,0,9390,47373,23433,1276,0
Senator Kimberley Kitching,Melbourne,3588,0,4966,0,2597,10668,98,0,0
Senator Larissa Waters,Brisbane,9535,0,26419,2160,3002,54180,71253,2352,0
Senator Lee Rhiannon,Sydney,10369,0,10197,0,4329,90943,57805,3462,0
Senator Linda Reynolds CSC,Perth,14617,0,36908,0,10905,87905,65806,2952,6587
Senator Louise Pratt,Maylands,13939,0,45469,0,7249,44902,8816,2274,3963
Senator Malarndirri McCarthy,Darwin,15331,0,24955,10227,14063,48699,3883,1396,2048
Senator Malcolm Roberts,Brisbane,12308,0,14214,0,7248,31656,2513,2290,3025
Senator Murray Watt,Brisbane,11357,0,22060,142,2680,51479,19399,1710,0
Senator Nick McKim,Hobart,9823,0,13249,0,8657,67353,72586,3409,0
Senator Nick Xenophon,Adelaide,10320,0,12485,281,1238,52347,15423,5094,0
Senator Patrick Dodson,Broome,27926,0,29574,2982,2528,135002,5007,5577,0
Senator Pauline Hanson,Brisbane,8372,0,11594,0,2517,35798,7814,2358,1756
Senator Peter Whish-Wilson,Launceston,12074,0,10689,0,10132,37904,48778,4168,2266
Senator Rachel Siewert,Perth,13299,0,52603,1704,10038,44717,34504,3595,411
Senator Richard Di Natale,Deans Marsh,10972,0,23758,18960,25527,119450,81689,4175,3181
Senator Sam Dastyari,Sydney,11461,0,12894,0,6584,95851,31937,2476,456
Senator Sarah Hanson-Young,Adelaide,15178,0,36658,1293,14150,62510,77999,2748,1627
Senator Scott Ludlam,Perth,6025,0,14401,0,835,73519,71609,4102,0
Senator Skye Kakoschke-Moore,Adelaide,10255,0,9019,0,1360,50825,12560,3177,1889
Senator Stirling Griff,Adelaide,10727,0,5661,0,871,34945,14095,1235,2157
Senator Sue Lines,Perth,8439,0,32048,0,9989,123088,60345,3199,12712
Senator the Hon Anne Ruston,Renmark,26757,0,42428,5172,22800,33698,46007,3215,4326
Senator the Hon Arthur Sinodinos AO,Sydney,18701,0,18803,0,14905,224421,37878,1911,0
Senator the Hon Concetta Fierravanti-Wells,Sydney,11198,33329,26090,0,17906,175182,38403,1242,3630
Senator the Hon Don Farrell,Adelaide,12710,0,14359,0,5648,66200,7797,1822,8689
Senator the Hon Doug Cameron,Blaxland,16666,0,19497,-2679,14863,70450,66754,2912,0
Senator the Hon Eric Abetz,Hobart,6582,0,18692,5355,13650,69210,73702,7190,3091
Senator the Hon Fiona Nash,Young,25968,0,17953,24171,18432,148373,75747,1698,45
Senator the Hon George Brandis QC,Brisbane,24615,46094,62942,0,29565,122685,36077,2051,0
Senator the Hon Ian Macdonald,Ayr,19983,7632,29919,14454,17002,54504,58076,2434,12747
Senator the Hon Jacinta Collins,Melbourne,10929,0,16292,0,17404,81418,19329,3184,11160
Senator the Hon James McGrath,Flaxton,30928,15506,44526,0,28494,40036,65289,2384,3507
Senator the Hon Kim Carr,Melbourne,13915,0,23761,0,21502,40019,54557,2411,1460
Senator the Hon Lisa Singh,Hobart,3167,61902,5885,0,7537,55673,71338,4013,0
Senator the Hon Marise Payne,Sydney,4785,206138,3391,0,24416,188773,22783,1616,842
Senator the Hon Mathias Cormann,Perth,17209,92554,60205,3254,17574,137420,11642,2216,24210
Senator the Hon Matthew Canavan,Pacific Heights,25486,0,57701,5068,29034,47028,73374,4581,7653
Senator the Hon Michaelia Cash,Perth,28617,0,60197,0,15395,146652,31287,2238,7374
Senator the Hon Mitch Fifield,Melbourne,23321,0,56048,0,26977,100381,42384,3253,236
Senator the Hon Nigel Scullion,Darwin,40206,0,55662,79150,27802,110584,17637,3240,14598
Senator the Hon Penny Wong,Adelaide,16005,17422,43617,0,21311,86638,29437,3191,6290
Senator the Hon Scott Ryan,Melbourne,17814,315,35185,0,17858,105497,48898,3242,5248
Senator the Hon Simon Birmingham,Adelaide,19262,0,48731,0,17704,73284,57726,3611,4031
Senator the Hon Stephen Parry,Sandford,19342,0,27069,143,18881,95026,75745,7970,10558
Senator the Hon Zed Seselja,Canberra,10871,0,27426,0,17756,114653,53255,3059,0
The Hon Alan Griffin,Melbourne,0,0,0,0,0,7491,0,0,0
The Hon Alan Tudge MP,Wantirna South,16290,6438,48377,5825,11291,102574,113674,4543,309
The Hon Alannah MacTiernan,Perth,0,0,0,231,0,135,-9,0,0
The Hon Alex Hawke MP,Castle Hill,12932,0,3514,0,11071,78214,62967,4223,2364
The Hon Amanda Rishworth MP,Adelaide,10256,0,36807,0,19650,37662,85273,3839,1679
The Hon Andrew Robb AO,Brighton,0,-286,0,0,0,2800,-81,0,0
The Hon Angus Taylor MP,Goulburn,16493,0,18522,0,18849,58670,183050,7485,0
The Hon Anthony Albanese MP,Sydney,13485,0,43482,0,22686,48246,125309,3362,7184
The Hon Anthony Byrne MP,Melbourne,7170,0,8502,0,10282,82320,120772,3528,1302
The Hon Barnaby Joyce MP,Tamworth,23587,0,24003,61835,29169,106458,94970,3147,20789
The Hon Bernie Ripoll,Ipswich,0,0,0,0,286,2240,-167,0,0
The Hon Bill Heffernan,Junee,0,0,0,0,0,182,5,0,0
The Hon Bill Shorten MP,Melbourne,20505,35213,72400,0,177736,128857,125976,4094,16611
The Hon Bob Baldwin,Chisholm,0,0,-308,0,0,2474,-210,0,0
The Hon Bob Katter MP,Charters Towers,20325,0,34380,61199,58613,87666,142989,8373,6922
The Hon Brendan O'Connor MP,Melbourne,19835,0,52664,0,30866,53295,107509,3365,7382
The Hon Bronwyn Bishop,Sydney,0,0,40,0,0,1370,34,0,0
The Hon Bruce Billson,Mornington,0,0,326,0,0,129,-309,0,0
The Hon Bruce Scott,Roma,0,6740,0,0,0,5104,976,-20,0
The Hon Catherine King MP,Ballarat,10237,0,34926,0,25223,58842,229560,4286,0
The Hon Chris Bowen MP,Sydney,7442,5316,21752,0,25550,75351,116794,3133,0
The Hon Christian Porter MP,Yanchep,19683,0,69032,-816,16947,101581,86967,2720,4151
The Hon Christopher Pyne MP,Adelaide,18551,100496,49550,0,26756,87747,88342,3275,2780
The Hon Craig Laundy MP,Sydney,12413,0,16539,0,10947,94707,70798,1879,857
The Hon Damian Drum MP,Shepparton,9770,0,7419,0,9659,55044,29042,3791,3453
The Hon Dan Tehan MP,Hamilton,27661,80039,25789,0,17479,84182,114902,11991,5169
The Hon Darren Chester MP,Lakes Entrance,29916,15979,20131,58298,32485,86822,133400,6680,2605
The Hon David Feeney MP,Melbourne,9375,0,15321,0,9103,54925,180379,3926,0
The Hon David Johnston,Perth,0,0,1947,0,1116,3910,37131,90,0
The Hon Dr Andrew Leigh MP,Canberra,5173,0,14462,0,5134,56119,165672,2612,0
The Hon Dr David Gillespie MP,Wauchope,22813,0,37436,0,20727,72068,87436,4795,9236
The Hon Dr Mike Kelly AM MP,Queanbeyan,5597,0,1662,0,7299,88223,15159,3762,0
The Hon Dr Peter Hendy,Queanbeyan,2576,0,0,0,1885,7164,42037,1689,0
The Hon Dr Sharman Stone,Shepparton,0,0,0,0,0,621,3639,0,0
The Hon Ed Husic MP,Sydney,11149,0,13131,0,14267,61131,71203,1887,0
The Hon Gary Gray AO,Perth,0,0,0,292,1281,735,111,0,0
The Hon Greg Hunt MP,Mt Martha,17418,105148,24843,0,36207,84651,97331,3036,5330
The Hon Ian Macfarlane,Toowoomba,0,0,0,0,0,4112,0,0,0
The Hon Jamie Briggs,Aldgate,0,0,431,0,1554,7329,56574,1809,0
The Hon Jan McLucas,Cairns,0,0,4301,-2679,0,1674,-55,0,0
The Hon Jane Prentice MP,Brisbane,14963,0,28670,0,15161,66408,82275,2163,6290
The Hon Jason Clare MP,Bankstown,7709,0,35759,0,7995,46820,99298,2704,669
The Hon Jenny Macklin MP,Melbourne,6461,0,18715,0,11459,66332,127084,3858,1420
The Hon Joe Hockey,Sydney,0,0,0,0,0,0,57,0,0
The Hon Joe Ludwig,Calamvale,0,0,0,0,121,455,12357,0,0
The Hon Joel Fitzgibbon MP,Cessnock,16003,0,14128,0,15852,60913,72503,3330,0
The Hon John Cobb,Molong,0,0,0,0,0,3544,239,0,0
The Hon Josh Frydenberg MP,Melbourne,14501,79918,35349,7905,24237,112928,78225,2736,1730
The Hon Julie Bishop MP,Subiaco,25052,304364,63131,0,34110,199491,104975,1499,12472
The Hon Julie Collins MP,Hobart,10056,0,23360,0,10360,54999,108249,3912,0
The Hon Justine Elliot MP,Tweed Heads,10226,0,12512,0,12086,108033,83594,3695,1307
The Hon Karen Andrews MP,Gold Coast,15173,0,32913,0,13885,58426,80472,3208,5527
The Hon Kate Ellis MP,Adelaide,7452,0,18646,0,14499,65350,174638,2907,2179
The Hon Keith Pitt MP,Bundaberg,21774,36078,55988,7535,15358,35932,58352,3345,14128
The Hon Kelly O'Dwyer MP,Melbourne,12637,0,32562,0,14434,97288,155857,3986,1165
The Hon Kelvin Thomson,Melbourne,0,0,0,0,0,1212,113,0,0
The Hon Ken Wyatt AM MP,South Perth,13708,23990,72779,0,22794,80988,146238,3379,9612
The Hon Kevin Andrews MP,Melbourne,12463,0,22166,0,13271,52174,64010,2934,6267
The Hon Laurie Ferguson,Sydney,0,0,0,0,0,2261,18103,0,0
The Hon Linda Burney MP,Sydney,10609,0,17447,0,4775,64207,25237,1541,0
The Hon Luke Hartsuyker MP,Coffs Harbour,17362,23377,29178,0,13010,52261,158713,3506,3156
The Hon Mal Brough,Sunshine Coast,0,0,0,0,0,-6903,-38,0,0
The Hon Malcolm Turnbull MP,Sydney,15238,509620,0,0,94313,157016,83562,2028,8176
The Hon Mark Butler MP,Adelaide,10602,0,35013,0,14262,75386,140569,5917,0
The Hon Mark Dreyfus QC MP,Melbourne,9628,0,32476,0,14704,75377,129806,3603,1017
The Hon Matt Thistlethwaite MP,Sydney,6900,0,9251,0,10760,132352,104910,3263,0
The Hon Melissa Parke,Fremantle,0,0,0,0,0,1197,0,0,0
The Hon Michael Danby MP,Melbourne,6165,0,15500,0,10813,96721,35291,3005,3548
The Hon Michael Keenan MP,Perth,21160,71967,76787,0,21954,141415,73574,1071,6666
The Hon Michael McCormack MP,Wagga Wagga,29371,0,34911,2420,17080,46142,75530,3178,0
The Hon Michael Ronaldson,Lake Wendouree,0,-45,0,0,0,0,0,0,0
The Hon Michael Sukkar MP,Blackburn,8553,0,15354,0,11021,40593,137907,2161,2152
The Hon Paul Fletcher MP,Sydney,8326,35624,13744,0,14037,100972,85879,2020,1650
The Hon Peter Dutton MP,Camp Mountain,16991,48262,46549,0,15187,119500,85556,1551,10881
The Hon Philip Ruddock,Sydney,0,0,0,0,-511,245,83,0,0
The Hon Richard Colbeck,Devonport,1200,0,1754,1165,3402,4718,57172,2380,0
The Hon Richard Marles MP,Geelong,7528,2318,36918,0,27288,58646,95646,3887,3682
The Hon Scott Morrison MP,Sydney,17238,60309,19140,0,21242,251488,72887,1645,0
The Hon Sharon Bird MP,Wollongong,10765,0,1101,0,7595,85544,59529,1604,0
The Hon Shayne Neumann MP,Ipswich,8447,0,22303,0,14815,65039,56771,3200,0
The Hon Stephen Conroy,Melbourne,3748,4386,16866,0,16530,30349,68771,2177,0
The Hon Steven Ciobo MP,Gold Coast,13822,417080,29902,0,15529,65881,144020,2391,6577
The Hon Stuart Robert MP,Gold Coast,10693,0,25955,0,7163,51618,113433,9943,1378
The Hon Sussan Ley MP,Albury,35613,12008,43272,51684,29239,191891,83323,5910,2727
The Hon Tanya Plibersek MP,Sydney,6444,0,43224,0,26580,14534,99219,4479,7940
The Hon Teresa Gambaro,Brisbane,0,0,0,0,0,-462,0,0,0
The Hon Tony Abbott MP,Sydney,15135,2726,36729,0,14563,75214,84138,3310,2758
The Hon Tony Burke MP,Sydney,9253,0,20461,0,22058,122773,101605,2568,1537
The Hon Tony Smith MP,Melbourne,15448,32080,25910,0,15747,111219,100936,3913,3689
The Hon Warren Entsch MP,Cairns,15860,0,18680,26468,4948,92851,105482,3782,4545
The Hon Warren Snowdon MP,Alice Springs,38401,13625,47710,44814,57887,95506,88445,9855,1152
The Hon Warren Truss,Maryborough,0,0,0,0,0,4449,12,0,0
The Hon Wayne Swan MP,Brisbane,9102,0,29199,0,12078,50326,91576,2645,1649
The Hon Wyatt Roy,Beachmere,0,0,618,0,3778,3088,26480,670,0
--------------------------------------------------------------------------------
/tests/date-test.csv:
--------------------------------------------------------------------------------
1 | Product code,Bureau of Meteorology station number,Year,Month,Day,Maximum temperature (Degree C),Days of accumulation of maximum temperature,Quality,Date1,Date2,Date3,Date4
IDCJAC0010,66062,1859,1,1,24.4,,Y,1/01/1959,"Thursday, 1 January 59",01-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,2,24.4,1,Y,2/01/1959,"Friday, 2 January 59",02-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,3,24.2,1,Y,3/01/1959,"Saturday, 3 January 59",03-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,4,24.7,1,Y,4/01/1959,"Sunday, 4 January 59",04-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,5,24.6,1,Y,5/01/1959,"Monday, 5 January 59",05-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,6,22.2,1,Y,6/01/1959,"Tuesday, 6 January 59",06-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,7,24.7,1,Y,7/01/1959,"Wednesday, 7 January 59",07-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,8,25.1,1,Y,8/01/1959,"Thursday, 8 January 59",08-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,9,33.9,1,Y,9/01/1959,"Friday, 9 January 59",09-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,10,27.2,1,Y,10/01/1959,"Saturday, 10 January 59",10-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,11,28.6,1,Y,11/01/1959,"Sunday, 11 January 59",11-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,12,27.3,1,Y,12/01/1959,"Monday, 12 January 59",12-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,13,24.1,1,Y,13/01/1959,"Tuesday, 13 January 59",13-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,14,25.4,1,Y,14/01/1959,"Wednesday, 14 January 59",14-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,15,23.8,1,Y,15/01/1959,"Thursday, 15 January 59",15-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,16,24.4,1,Y,16/01/1959,"Friday, 16 January 59",16-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,17,33.1,1,Y,17/01/1959,"Saturday, 17 January 59",17-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,18,36.9,1,Y,18/01/1959,"Sunday, 18 January 59",18-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,19,25.8,1,Y,19/01/1959,"Monday, 19 January 59",19-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,20,23.4,1,Y,20/01/1959,"Tuesday, 20 January 59",20-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,21,23.8,1,Y,21/01/1959,"Wednesday, 21 January 59",21-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,22,23.4,1,Y,22/01/1959,"Thursday, 22 January 59",22-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,23,26.9,1,Y,23/01/1959,"Friday, 23 January 59",23-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,24,25.6,1,Y,24/01/1959,"Saturday, 24 January 59",24-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,25,24.6,1,Y,25/01/1959,"Sunday, 25 January 59",25-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,26,24.8,1,Y,26/01/1959,"Monday, 26 January 59",26-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,27,24.9,1,Y,27/01/1959,"Tuesday, 27 January 59",27-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,28,25.9,1,Y,28/01/1959,"Wednesday, 28 January 59",28-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,29,25.6,1,Y,29/01/1959,"Thursday, 29 January 59",29-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,30,22.4,1,Y,30/01/1959,"Friday, 30 January 59",30-Jan-59,Jan-59
IDCJAC0010,66062,1859,1,31,20.6,1,Y,31/01/1959,"Saturday, 31 January 59",31-Jan-59,Jan-59
IDCJAC0010,66062,1859,2,1,22.3,1,Y,1/02/1959,"Sunday, 1 February 59",01-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,2,22.7,1,Y,2/02/1959,"Monday, 2 February 59",02-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,3,23.3,1,Y,3/02/1959,"Tuesday, 3 February 59",03-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,4,25,1,Y,4/02/1959,"Wednesday, 4 February 59",04-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,5,26.9,1,Y,5/02/1959,"Thursday, 5 February 59",05-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,6,27.2,1,Y,6/02/1959,"Friday, 6 February 59",06-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,7,35.6,1,Y,7/02/1959,"Saturday, 7 February 59",07-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,8,32.3,1,Y,8/02/1959,"Sunday, 8 February 59",08-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,9,26.8,1,Y,9/02/1959,"Monday, 9 February 59",09-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,10,26.2,1,Y,10/02/1959,"Tuesday, 10 February 59",10-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,11,23.9,1,Y,11/02/1959,"Wednesday, 11 February 59",11-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,12,32.8,1,Y,12/02/1959,"Thursday, 12 February 59",12-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,13,28.6,1,Y,13/02/1959,"Friday, 13 February 59",13-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,14,25.4,1,Y,14/02/1959,"Saturday, 14 February 59",14-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,15,26.5,1,Y,15/02/1959,"Sunday, 15 February 59",15-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,16,22.3,1,Y,16/02/1959,"Monday, 16 February 59",16-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,17,20.4,1,Y,17/02/1959,"Tuesday, 17 February 59",17-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,18,19.9,1,Y,18/02/1959,"Wednesday, 18 February 59",18-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,19,23.3,1,Y,19/02/1959,"Thursday, 19 February 59",19-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,20,24.5,1,Y,20/02/1959,"Friday, 20 February 59",20-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,21,23.6,1,Y,21/02/1959,"Saturday, 21 February 59",21-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,22,25.9,1,Y,22/02/1959,"Sunday, 22 February 59",22-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,23,23.3,1,Y,23/02/1959,"Monday, 23 February 59",23-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,24,25,1,Y,24/02/1959,"Tuesday, 24 February 59",24-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,25,26.7,1,Y,25/02/1959,"Wednesday, 25 February 59",25-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,26,25,1,Y,26/02/1959,"Thursday, 26 February 59",26-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,27,23,1,Y,27/02/1959,"Friday, 27 February 59",27-Feb-59,Feb-59
IDCJAC0010,66062,1859,2,28,22.4,1,Y,28/02/1959,"Saturday, 28 February 59",28-Feb-59,Feb-59
IDCJAC0010,66062,1859,3,1,24.1,1,Y,1/03/1959,"Sunday, 1 March 59",01-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,2,28.2,1,Y,2/03/1959,"Monday, 2 March 59",02-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,3,25.3,1,Y,3/03/1959,"Tuesday, 3 March 59",03-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,4,23.8,1,Y,4/03/1959,"Wednesday, 4 March 59",04-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,5,22.8,1,Y,5/03/1959,"Thursday, 5 March 59",05-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,6,25,1,Y,6/03/1959,"Friday, 6 March 59",06-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,7,23.1,1,Y,7/03/1959,"Saturday, 7 March 59",07-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,8,26,1,Y,8/03/1959,"Sunday, 8 March 59",08-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,9,23.8,1,Y,9/03/1959,"Monday, 9 March 59",09-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,10,30.3,1,Y,10/03/1959,"Tuesday, 10 March 59",10-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,11,25.7,1,Y,11/03/1959,"Wednesday, 11 March 59",11-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,12,26.9,1,Y,12/03/1959,"Thursday, 12 March 59",12-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,13,24.6,1,Y,13/03/1959,"Friday, 13 March 59",13-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,14,22,1,Y,14/03/1959,"Saturday, 14 March 59",14-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,15,22.5,1,Y,15/03/1959,"Sunday, 15 March 59",15-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,16,18.8,1,Y,16/03/1959,"Monday, 16 March 59",16-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,17,21.3,1,Y,17/03/1959,"Tuesday, 17 March 59",17-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,18,22.6,1,Y,18/03/1959,"Wednesday, 18 March 59",18-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,19,22.9,1,Y,19/03/1959,"Thursday, 19 March 59",19-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,20,23.1,1,Y,20/03/1959,"Friday, 20 March 59",20-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,21,24.9,1,Y,21/03/1959,"Saturday, 21 March 59",21-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,22,23.2,1,Y,22/03/1959,"Sunday, 22 March 59",22-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,23,24,1,Y,23/03/1959,"Monday, 23 March 59",23-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,24,23.6,1,Y,24/03/1959,"Tuesday, 24 March 59",24-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,25,24.1,1,Y,25/03/1959,"Wednesday, 25 March 59",25-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,26,23.4,1,Y,26/03/1959,"Thursday, 26 March 59",26-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,27,23.3,1,Y,27/03/1959,"Friday, 27 March 59",27-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,28,23.6,1,Y,28/03/1959,"Saturday, 28 March 59",28-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,29,23.1,1,Y,29/03/1959,"Sunday, 29 March 59",29-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,30,23.2,1,Y,30/03/1959,"Monday, 30 March 59",30-Mar-59,Mar-59
IDCJAC0010,66062,1859,3,31,30.4,1,Y,31/03/1959,"Tuesday, 31 March 59",31-Mar-59,Mar-59
IDCJAC0010,66062,1859,4,1,28,1,Y,1/04/1959,"Wednesday, 1 April 59",01-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,2,22.8,1,Y,2/04/1959,"Thursday, 2 April 59",02-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,3,31.1,1,Y,3/04/1959,"Friday, 3 April 59",03-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,4,26.2,1,Y,4/04/1959,"Saturday, 4 April 59",04-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,5,23.4,1,Y,5/04/1959,"Sunday, 5 April 59",05-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,6,26.4,1,Y,6/04/1959,"Monday, 6 April 59",06-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,7,23.1,1,Y,7/04/1959,"Tuesday, 7 April 59",07-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,8,21.9,1,Y,8/04/1959,"Wednesday, 8 April 59",08-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,9,23.9,1,Y,9/04/1959,"Thursday, 9 April 59",09-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,10,23.9,1,Y,10/04/1959,"Friday, 10 April 59",10-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,11,26.1,1,Y,11/04/1959,"Saturday, 11 April 59",11-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,12,25.3,1,Y,12/04/1959,"Sunday, 12 April 59",12-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,13,22.4,1,Y,13/04/1959,"Monday, 13 April 59",13-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,14,20.6,1,Y,14/04/1959,"Tuesday, 14 April 59",14-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,15,20.6,1,Y,15/04/1959,"Wednesday, 15 April 59",15-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,16,21.5,1,Y,16/04/1959,"Thursday, 16 April 59",16-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,17,22.8,1,Y,17/04/1959,"Friday, 17 April 59",17-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,18,22.3,1,Y,18/04/1959,"Saturday, 18 April 59",18-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,19,24.6,1,Y,19/04/1959,"Sunday, 19 April 59",19-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,20,20.5,1,Y,20/04/1959,"Monday, 20 April 59",20-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,21,20.5,1,Y,21/04/1959,"Tuesday, 21 April 59",21-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,22,16.8,1,Y,22/04/1959,"Wednesday, 22 April 59",22-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,23,22.2,1,Y,23/04/1959,"Thursday, 23 April 59",23-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,24,21.4,1,Y,24/04/1959,"Friday, 24 April 59",24-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,25,21.4,1,Y,25/04/1959,"Saturday, 25 April 59",25-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,26,23.3,1,Y,26/04/1959,"Sunday, 26 April 59",26-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,27,21.4,1,Y,27/04/1959,"Monday, 27 April 59",27-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,28,20.5,1,Y,28/04/1959,"Tuesday, 28 April 59",28-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,29,23.1,1,Y,29/04/1959,"Wednesday, 29 April 59",29-Apr-59,Apr-59
IDCJAC0010,66062,1859,4,30,26.1,1,Y,30/04/1959,"Thursday, 30 April 59",30-Apr-59,Apr-59
IDCJAC0010,66062,1859,5,1,28.6,1,Y,1/05/1959,"Friday, 1 May 59",01-May-59,May-59
IDCJAC0010,66062,1859,5,2,25.3,1,Y,2/05/1959,"Saturday, 2 May 59",02-May-59,May-59
IDCJAC0010,66062,1859,5,3,24.1,1,Y,3/05/1959,"Sunday, 3 May 59",03-May-59,May-59
IDCJAC0010,66062,1859,5,4,22.8,1,Y,4/05/1959,"Monday, 4 May 59",04-May-59,May-59
IDCJAC0010,66062,1859,5,5,22.9,1,Y,5/05/1959,"Tuesday, 5 May 59",05-May-59,May-59
IDCJAC0010,66062,1859,5,6,20.1,1,Y,6/05/1959,"Wednesday, 6 May 59",06-May-59,May-59
IDCJAC0010,66062,1859,5,7,21.1,1,Y,7/05/1959,"Thursday, 7 May 59",07-May-59,May-59
IDCJAC0010,66062,1859,5,8,18.9,1,Y,8/05/1959,"Friday, 8 May 59",08-May-59,May-59
IDCJAC0010,66062,1859,5,9,18.4,1,Y,9/05/1959,"Saturday, 9 May 59",09-May-59,May-59
IDCJAC0010,66062,1859,5,10,17.8,1,Y,10/05/1959,"Sunday, 10 May 59",10-May-59,May-59
IDCJAC0010,66062,1859,5,11,18.9,1,Y,11/05/1959,"Monday, 11 May 59",11-May-59,May-59
IDCJAC0010,66062,1859,5,12,20.9,1,Y,12/05/1959,"Tuesday, 12 May 59",12-May-59,May-59
IDCJAC0010,66062,1859,5,13,18.4,1,Y,13/05/1959,"Wednesday, 13 May 59",13-May-59,May-59
IDCJAC0010,66062,1859,5,14,18.6,1,Y,14/05/1959,"Thursday, 14 May 59",14-May-59,May-59
IDCJAC0010,66062,1859,5,15,17.1,1,Y,15/05/1959,"Friday, 15 May 59",15-May-59,May-59
IDCJAC0010,66062,1859,5,16,20.1,1,Y,16/05/1959,"Saturday, 16 May 59",16-May-59,May-59
IDCJAC0010,66062,1859,5,17,20.6,1,Y,17/05/1959,"Sunday, 17 May 59",17-May-59,May-59
IDCJAC0010,66062,1859,5,18,19.2,1,Y,18/05/1959,"Monday, 18 May 59",18-May-59,May-59
IDCJAC0010,66062,1859,5,19,17.6,1,Y,19/05/1959,"Tuesday, 19 May 59",19-May-59,May-59
IDCJAC0010,66062,1859,5,20,19.4,1,Y,20/05/1959,"Wednesday, 20 May 59",20-May-59,May-59
IDCJAC0010,66062,1859,5,21,15.6,1,Y,21/05/1959,"Thursday, 21 May 59",21-May-59,May-59
IDCJAC0010,66062,1859,5,22,13.9,1,Y,22/05/1959,"Friday, 22 May 59",22-May-59,May-59
IDCJAC0010,66062,1859,5,23,16.1,1,Y,23/05/1959,"Saturday, 23 May 59",23-May-59,May-59
IDCJAC0010,66062,1859,5,24,16.6,1,Y,24/05/1959,"Sunday, 24 May 59",24-May-59,May-59
IDCJAC0010,66062,1859,5,25,16.3,1,Y,25/05/1959,"Monday, 25 May 59",25-May-59,May-59
IDCJAC0010,66062,1859,5,26,18.3,1,Y,26/05/1959,"Tuesday, 26 May 59",26-May-59,May-59
IDCJAC0010,66062,1859,5,27,22.3,1,Y,27/05/1959,"Wednesday, 27 May 59",27-May-59,May-59
IDCJAC0010,66062,1859,5,28,22.5,1,Y,28/05/1959,"Thursday, 28 May 59",28-May-59,May-59
IDCJAC0010,66062,1859,5,29,17.3,1,Y,29/05/1959,"Friday, 29 May 59",29-May-59,May-59
IDCJAC0010,66062,1859,5,30,18.5,1,Y,30/05/1959,"Saturday, 30 May 59",30-May-59,May-59
IDCJAC0010,66062,1859,5,31,15,1,Y,31/05/1959,"Sunday, 31 May 59",31-May-59,May-59
IDCJAC0010,66062,1859,6,1,16.6,1,Y,1/06/1959,"Monday, 1 June 59",01-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,2,16.5,1,Y,2/06/1959,"Tuesday, 2 June 59",02-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,3,18.4,1,Y,3/06/1959,"Wednesday, 3 June 59",03-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,4,15.5,1,Y,4/06/1959,"Thursday, 4 June 59",04-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,5,15.2,1,Y,5/06/1959,"Friday, 5 June 59",05-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,6,16.6,1,Y,6/06/1959,"Saturday, 6 June 59",06-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,7,16.2,1,Y,7/06/1959,"Sunday, 7 June 59",07-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,8,16.9,1,Y,8/06/1959,"Monday, 8 June 59",08-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,9,19.3,1,Y,9/06/1959,"Tuesday, 9 June 59",09-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,10,15.4,1,Y,10/06/1959,"Wednesday, 10 June 59",10-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,11,15.5,1,Y,11/06/1959,"Thursday, 11 June 59",11-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,12,14.8,1,Y,12/06/1959,"Friday, 12 June 59",12-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,13,21.3,1,Y,13/06/1959,"Saturday, 13 June 59",13-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,14,20.9,1,Y,14/06/1959,"Sunday, 14 June 59",14-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,15,16.6,1,Y,15/06/1959,"Monday, 15 June 59",15-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,16,15,1,Y,16/06/1959,"Tuesday, 16 June 59",16-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,17,13.8,1,Y,17/06/1959,"Wednesday, 17 June 59",17-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,18,13.3,1,Y,18/06/1959,"Thursday, 18 June 59",18-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,19,12.2,1,Y,19/06/1959,"Friday, 19 June 59",19-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,20,12,1,Y,20/06/1959,"Saturday, 20 June 59",20-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,21,12.1,1,Y,21/06/1959,"Sunday, 21 June 59",21-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,22,13.3,1,Y,22/06/1959,"Monday, 22 June 59",22-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,23,13.8,1,Y,23/06/1959,"Tuesday, 23 June 59",23-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,24,13.9,1,Y,24/06/1959,"Wednesday, 24 June 59",24-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,25,14.6,1,Y,25/06/1959,"Thursday, 25 June 59",25-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,26,15.2,1,Y,26/06/1959,"Friday, 26 June 59",26-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,27,17.5,1,Y,27/06/1959,"Saturday, 27 June 59",27-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,28,16.6,1,Y,28/06/1959,"Sunday, 28 June 59",28-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,29,16.2,1,Y,29/06/1959,"Monday, 29 June 59",29-Jun-59,Jun-59
IDCJAC0010,66062,1859,6,30,14.4,1,Y,30/06/1959,"Tuesday, 30 June 59",30-Jun-59,Jun-59
IDCJAC0010,66062,1859,7,1,17.1,1,Y,1/07/1959,"Wednesday, 1 July 59",01-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,2,16.7,1,Y,2/07/1959,"Thursday, 2 July 59",02-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,3,15.5,1,Y,3/07/1959,"Friday, 3 July 59",03-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,4,15.3,1,Y,4/07/1959,"Saturday, 4 July 59",04-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,5,16.2,1,Y,5/07/1959,"Sunday, 5 July 59",05-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,6,16.2,1,Y,6/07/1959,"Monday, 6 July 59",06-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,7,19.7,1,Y,7/07/1959,"Tuesday, 7 July 59",07-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,8,13.4,1,Y,8/07/1959,"Wednesday, 8 July 59",08-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,9,14.3,1,Y,9/07/1959,"Thursday, 9 July 59",09-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,10,13.6,1,Y,10/07/1959,"Friday, 10 July 59",10-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,11,12.6,1,Y,11/07/1959,"Saturday, 11 July 59",11-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,12,15.3,1,Y,12/07/1959,"Sunday, 12 July 59",12-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,13,14.6,1,Y,13/07/1959,"Monday, 13 July 59",13-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,14,14,1,Y,14/07/1959,"Tuesday, 14 July 59",14-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,15,13.8,1,Y,15/07/1959,"Wednesday, 15 July 59",15-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,16,14.3,1,Y,16/07/1959,"Thursday, 16 July 59",16-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,17,16,1,Y,17/07/1959,"Friday, 17 July 59",17-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,18,17.2,1,Y,18/07/1959,"Saturday, 18 July 59",18-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,19,17.8,1,Y,19/07/1959,"Sunday, 19 July 59",19-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,20,12.4,1,Y,20/07/1959,"Monday, 20 July 59",20-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,21,11.1,1,Y,21/07/1959,"Tuesday, 21 July 59",21-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,22,14.7,1,Y,22/07/1959,"Wednesday, 22 July 59",22-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,23,14.1,1,Y,23/07/1959,"Thursday, 23 July 59",23-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,24,12.7,1,Y,24/07/1959,"Friday, 24 July 59",24-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,25,12.7,1,Y,25/07/1959,"Saturday, 25 July 59",25-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,26,13.2,1,Y,26/07/1959,"Sunday, 26 July 59",26-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,27,14.2,1,Y,27/07/1959,"Monday, 27 July 59",27-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,28,13.9,1,Y,28/07/1959,"Tuesday, 28 July 59",28-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,29,16.7,1,Y,29/07/1959,"Wednesday, 29 July 59",29-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,30,12.7,1,Y,30/07/1959,"Thursday, 30 July 59",30-Jul-59,Jul-59
IDCJAC0010,66062,1859,7,31,12.6,1,Y,31/07/1959,"Friday, 31 July 59",31-Jul-59,Jul-59
IDCJAC0010,66062,1859,8,1,13.7,1,Y,1/08/1959,"Saturday, 1 August 59",01-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,2,16.1,1,Y,2/08/1959,"Sunday, 2 August 59",02-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,3,16.2,1,Y,3/08/1959,"Monday, 3 August 59",03-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,4,16.3,1,Y,4/08/1959,"Tuesday, 4 August 59",04-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,5,17.1,1,Y,5/08/1959,"Wednesday, 5 August 59",05-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,6,16.4,1,Y,6/08/1959,"Thursday, 6 August 59",06-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,7,16.6,1,Y,7/08/1959,"Friday, 7 August 59",07-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,8,16.4,1,Y,8/08/1959,"Saturday, 8 August 59",08-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,9,19.4,1,Y,9/08/1959,"Sunday, 9 August 59",09-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,10,17.7,1,Y,10/08/1959,"Monday, 10 August 59",10-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,11,17.8,1,Y,11/08/1959,"Tuesday, 11 August 59",11-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,12,16.8,1,Y,12/08/1959,"Wednesday, 12 August 59",12-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,13,19.9,1,Y,13/08/1959,"Thursday, 13 August 59",13-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,14,19.9,1,Y,14/08/1959,"Friday, 14 August 59",14-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,15,16.4,1,Y,15/08/1959,"Saturday, 15 August 59",15-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,16,16.3,1,Y,16/08/1959,"Sunday, 16 August 59",16-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,17,16.2,1,Y,17/08/1959,"Monday, 17 August 59",17-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,18,14.4,1,Y,18/08/1959,"Tuesday, 18 August 59",18-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,19,21.5,1,Y,19/08/1959,"Wednesday, 19 August 59",19-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,20,19.1,1,Y,20/08/1959,"Thursday, 20 August 59",20-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,21,19.2,1,Y,21/08/1959,"Friday, 21 August 59",21-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,22,18.8,1,Y,22/08/1959,"Saturday, 22 August 59",22-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,23,16.7,1,Y,23/08/1959,"Sunday, 23 August 59",23-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,24,14.9,1,Y,24/08/1959,"Monday, 24 August 59",24-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,25,16.4,1,Y,25/08/1959,"Tuesday, 25 August 59",25-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,26,19.3,1,Y,26/08/1959,"Wednesday, 26 August 59",26-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,27,22.9,1,Y,27/08/1959,"Thursday, 27 August 59",27-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,28,22,1,Y,28/08/1959,"Friday, 28 August 59",28-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,29,17.3,1,Y,29/08/1959,"Saturday, 29 August 59",29-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,30,16.8,1,Y,30/08/1959,"Sunday, 30 August 59",30-Aug-59,Aug-59
IDCJAC0010,66062,1859,8,31,19.9,1,Y,31/08/1959,"Monday, 31 August 59",31-Aug-59,Aug-59
IDCJAC0010,66062,1859,9,1,22.2,1,Y,1/09/1959,"Tuesday, 1 September 59",01-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,2,15.7,1,Y,2/09/1959,"Wednesday, 2 September 59",02-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,3,12.9,1,Y,3/09/1959,"Thursday, 3 September 59",03-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,4,14.3,1,Y,4/09/1959,"Friday, 4 September 59",04-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,5,16.8,1,Y,5/09/1959,"Saturday, 5 September 59",05-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,6,19.3,1,Y,6/09/1959,"Sunday, 6 September 59",06-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,7,18.1,1,Y,7/09/1959,"Monday, 7 September 59",07-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,8,16.6,1,Y,8/09/1959,"Tuesday, 8 September 59",08-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,9,17.4,1,Y,9/09/1959,"Wednesday, 9 September 59",09-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,10,18.5,1,Y,10/09/1959,"Thursday, 10 September 59",10-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,11,17.6,1,Y,11/09/1959,"Friday, 11 September 59",11-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,12,19.7,1,Y,12/09/1959,"Saturday, 12 September 59",12-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,13,14.6,1,Y,13/09/1959,"Sunday, 13 September 59",13-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,14,18.8,1,Y,14/09/1959,"Monday, 14 September 59",14-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,15,14.6,1,Y,15/09/1959,"Tuesday, 15 September 59",15-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,16,15.1,1,Y,16/09/1959,"Wednesday, 16 September 59",16-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,17,14.6,1,Y,17/09/1959,"Thursday, 17 September 59",17-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,18,17.1,1,Y,18/09/1959,"Friday, 18 September 59",18-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,19,16.1,1,Y,19/09/1959,"Saturday, 19 September 59",19-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,20,16.1,1,Y,20/09/1959,"Sunday, 20 September 59",20-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,21,18.5,1,Y,21/09/1959,"Monday, 21 September 59",21-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,22,24.7,1,Y,22/09/1959,"Tuesday, 22 September 59",22-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,23,24.4,1,Y,23/09/1959,"Wednesday, 23 September 59",23-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,24,22.4,1,Y,24/09/1959,"Thursday, 24 September 59",24-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,25,18.8,1,Y,25/09/1959,"Friday, 25 September 59",25-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,26,21,1,Y,26/09/1959,"Saturday, 26 September 59",26-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,27,17.8,1,Y,27/09/1959,"Sunday, 27 September 59",27-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,28,19.6,1,Y,28/09/1959,"Monday, 28 September 59",28-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,29,25.6,1,Y,29/09/1959,"Tuesday, 29 September 59",29-Sep-59,Sep-59
IDCJAC0010,66062,1859,9,30,20.6,1,Y,30/09/1959,"Wednesday, 30 September 59",30-Sep-59,Sep-59
IDCJAC0010,66062,1859,10,1,23.3,1,Y,1/10/1959,"Thursday, 1 October 59",01-Oct-59,Oct-59
--------------------------------------------------------------------------------
/tests/unemployment.csv:
--------------------------------------------------------------------------------
1 | date,Employed persons total - trend,Employed persons total - seasonally adjusted,Employed persons total - original,Employed full-time - trend,Employed full-time - seasonally adjusted,Employed full-time - original,Employed part-time - trend,Employed part-time - seasonally adjusted,Employed part-time - original,Unemployed total - trend,Unemployed total - seasonally adjusted,Unemployed total - original,Unemployment rate - trend,Unemployment rate - seasonally adjusted,Unemployment rate - original
2 | Feb-1978,6005.1,5995.7,5985.7,5095.5,5077.7,5099.9,909.6,918,885.7,411.2,426.4,482.8,6.4,6.6,7.5
3 | Mar-1978,6011.7,6001,6040.6,5099.2,5093.4,5118.1,912.4,907.7,922.5,408.2,403.5,424.8,6.4,6.3,6.6
4 | Apr-1978,6018.7,6029.7,6054.2,5102.9,5118.6,5128.3,915.8,911.1,925.9,405.5,402.5,403.4,6.3,6.3,6.2
5 | May-1978,6025.2,6030.8,6038.3,5105,5116.6,5117.5,920.2,914.2,920.8,403.9,398.2,398.4,6.3,6.2,6.2
6 | Jun-1978,6030.3,6031.8,6031.3,5105.4,5102.2,5092.6,924.8,929.6,938.8,403.4,405.1,393.5,6.3,6.3,6.1
7 | Jul-1978,6032.8,6028.7,6036.1,5104.3,5094.9,5092.8,928.5,933.8,943.3,403.7,398.6,380.5,6.3,6.2,5.9
8 | Aug-1978,6033.3,6033.7,6005.4,5102.5,5095.6,5045.3,930.8,938.2,960,404.9,418.9,398.3,6.3,6.5,6.2
9 | Sep-1978,6033.8,6037.9,6024.3,5102.4,5112.7,5097,931.4,925.2,927.3,406.1,405.3,387.3,6.3,6.3,6
10 | Oct-1978,6035.9,6034.3,6045.9,5105.1,5106.3,5097.4,930.8,928,948.5,406.5,395.5,370.4,6.3,6.2,5.8
11 | Nov-1978,6040,6027,6033.8,5109.9,5102.6,5079.2,930.1,924.4,954.6,406.9,408.1,372.8,6.3,6.3,5.8
12 | Dec-1978,6044.6,6051.6,6125.4,5114.1,5111.2,5179,930.4,940.4,946.4,407.7,412.8,444.6,6.3,6.4,6.8
13 | Jan-1979,6049.3,6053.3,5971.3,5117.1,5123,5141.7,932.2,930.4,829.6,408.7,411,449.9,6.3,6.4,7
14 | Feb-1979,6054.4,6061.6,6050.7,5119.4,5127.6,5149.3,935,934,901.4,409.6,404,458.1,6.3,6.2,7
15 | Mar-1979,6060.4,6053.8,6096.2,5122.2,5122.5,5148.1,938.2,931.3,948,409.9,407.1,428.4,6.3,6.3,6.6
16 | Apr-1979,6067.1,6063.5,6087.7,5126,5120.2,5128.5,941.1,943.4,959.1,408.5,420.7,420.6,6.3,6.5,6.5
17 | May-1979,6074.6,6068,6075.6,5130.7,5116.5,5116.8,943.9,951.6,958.8,406.9,400.2,400.1,6.3,6.2,6.2
18 | Jun-1979,6084.3,6097.4,6095.7,5137.7,5151.3,5141,946.6,946.1,954.7,405.8,405.7,393,6.3,6.2,6.1
19 | Jul-1979,6096.8,6095.8,6103.9,5147.3,5146.9,5145.9,949.4,948.9,958,405.1,406.6,387.1,6.2,6.3,6
20 | Aug-1979,6111.6,6112.2,6078.5,5158.8,5164.5,5113.1,952.8,947.7,965.4,404.8,398.2,377.5,6.2,6.1,5.8
21 | Sep-1979,6128.7,6112.4,6157.8,5171.1,5157.7,5185.6,957.6,954.7,972.2,405.1,403.7,400.4,6.2,6.2,6.1
22 | Oct-1979,6147.4,6150.5,6164,5183.8,5184.6,5176.5,963.6,965.9,987.5,405.3,418.3,391.4,6.2,6.4,6
23 | Nov-1979,6166.9,6179.2,6188.8,5196.4,5206.5,5184.4,970.4,972.7,1004.4,404.3,398.2,363.6,6.2,6.1,5.5
24 | Dec-1979,6185.8,6182.3,6257.2,5209.8,5209.8,5279,976,972.5,978.1,402.1,401.9,431,6.1,6.1,6.4
25 | Jan-1980,6202.9,6204.6,6112.9,5224.1,5217.4,5230.1,978.8,987.2,882.8,400.5,405.6,441.7,6.1,6.1,6.7
26 | Feb-1980,6217.9,6219.8,6207.2,5238.5,5240.5,5262.1,979.4,979.3,945.1,400.5,396.6,448.5,6.1,6,6.7
27 | Mar-1980,6232.3,6231,6278.7,5253,5251.2,5278.9,979.3,979.8,999.7,402.5,393,415.6,6.1,5.9,6.2
28 | Apr-1980,6247.9,6241.7,6224.9,5267,5256.3,5234.4,980.9,985.4,990.5,406.4,406.1,408,6.1,6.1,6.2
29 | May-1980,6264.6,6265.5,6273.4,5279.6,5301.2,5301.7,985.1,964.3,971.8,410.7,416.3,416.6,6.2,6.2,6.2
30 | Jun-1980,6280.2,6273.3,6269.9,5288.4,5280.9,5269,991.8,992.3,1000.9,413.5,422.4,409.3,6.2,6.3,6.1
31 | Jul-1980,6293.4,6304.9,6314.1,5292.8,5293.1,5293.6,1000.5,1011.9,1020.5,414.2,406.8,387.6,6.2,6.1,5.8
32 | Aug-1980,6304.1,6313.1,6281.4,5294.7,5304.5,5251.1,1009.4,1008.7,1030.3,412.8,415.2,394.5,6.1,6.2,5.9
33 | Sep-1980,6312.9,6313.8,6360,5296.9,5292.2,5320,1016,1021.6,1040,409.8,410.7,407.6,6.1,6.1,6
34 | Oct-1980,6321.1,6304.9,6320.2,5300.9,5294.5,5287.2,1020.2,1010.4,1033.1,406.2,405.3,378.5,6,6,5.7
35 | Nov-1980,6330.3,6327.1,6342,5308.3,5296.6,5277.5,1021.9,1030.5,1064.5,402.5,393.5,359.6,6,5.9,5.4
36 | Dec-1980,6341.5,6349.6,6426.6,5318.8,5325.2,5396.5,1022.6,1024.4,1030.1,398.6,407.9,435.7,5.9,6,6.3
37 | Jan-1981,6354.8,6354.1,6253,5330.7,5337.6,5339.9,1024.1,1016.5,913,393.6,399.1,433.8,5.8,5.9,6.5
38 | Feb-1981,6369.1,6370.7,6356.5,5342.7,5347.1,5368.5,1026.4,1023.7,988,387.5,378.8,427.7,5.7,5.6,6.3
39 | Mar-1981,6382.1,6374.7,6428.1,5353,5338.4,5367.8,1029.1,1036.3,1060.3,382,388.3,413.3,5.6,5.7,6
40 | Apr-1981,6394,6402.6,6426.3,5361.9,5378,5383.1,1032.2,1024.6,1043.2,378.4,375.9,379.5,5.6,5.5,5.6
41 | May-1981,6405.8,6402.7,6412.4,5370.2,5361.2,5361.8,1035.6,1041.5,1050.6,377.8,378.2,379.3,5.6,5.6,5.6
42 | Jun-1981,6417,6418.6,6413.9,5377.9,5378.6,5364.7,1039.1,1040,1049.2,380.5,363.6,353.7,5.6,5.4,5.2
43 | Jul-1981,6425.1,6416.5,6425.3,5384.1,5381.5,5383.5,1041,1035,1041.8,385.9,396.3,378.2,5.7,5.8,5.6
44 | Aug-1981,6429.8,6431.9,6393.7,5388.9,5391,5337.1,1040.9,1040.9,1056.6,391.8,398.9,380.6,5.7,5.8,5.6
45 | Sep-1981,6432.3,6456.3,6502.7,5393.4,5408.4,5436.2,1038.9,1047.9,1066.5,397.5,396.7,394,5.8,5.8,5.7
46 | Oct-1981,6433.8,6427.6,6445.3,5398.5,5388.3,5383,1035.3,1039.3,1062.4,402.7,400.2,374,5.9,5.9,5.5
47 | Nov-1981,6436,6415.4,6433.3,5404.3,5385.2,5369.3,1031.7,1030.2,1064,407.3,409.2,375,6,6,5.5
48 | Dec-1981,6439.3,6428.2,6506.9,5409.3,5412.1,5484.7,1030,1016.1,1022.1,412.1,411.2,437.6,6,6,6.3
49 | Jan-1982,6443.2,6463.8,6355.5,5412.6,5429.9,5424.9,1030.6,1033.9,930.6,417.9,410.9,443.9,6.1,6,6.5
50 | Feb-1982,6445.9,6448.4,6432.4,5412.4,5415.8,5435.6,1033.5,1032.6,996.8,425.2,433.7,488.8,6.2,6.3,7.1
51 | Mar-1982,6446,6441.4,6497.4,5407.7,5401.7,5431.3,1038.3,1039.7,1066.1,433.1,434.4,463.9,6.3,6.3,6.7
52 | Apr-1982,6442,6451,6431.6,5398.4,5398.6,5371.2,1043.5,1052.4,1060.3,440.5,435.6,440,6.4,6.3,6.4
53 | May-1982,6435.1,6430.5,6440.9,5386.1,5383.8,5383,1049,1046.7,1057.9,448.4,452.8,453.8,6.5,6.6,6.6
54 | Jun-1982,6428.4,6418.7,6414.3,5373.6,5372.3,5357.1,1054.8,1046.5,1057.1,458.6,464.8,451.6,6.7,6.8,6.6
55 | Jul-1982,6421.6,6417.9,6425.9,5360,5357.1,5361.1,1061.5,1060.7,1064.8,474.7,473.5,453.4,6.9,6.9,6.6
56 | Aug-1982,6411.3,6414.4,6379.3,5342.2,5338.5,5285.9,1069.1,1075.9,1093.4,498.5,483,461.4,7.2,7,6.7
57 | Sep-1982,6395.3,6398.6,6443.5,5318.4,5331.3,5357.5,1076.8,1067.3,1086,529.4,511.9,509.1,7.6,7.4,7.3
58 | Oct-1982,6373.8,6400.6,6421.1,5289,5299.7,5296.9,1084.8,1100.9,1124.2,564.1,577.9,540.6,8.1,8.3,7.8
59 | Nov-1982,6347.4,6344.1,6366.8,5255.9,5266.8,5255.1,1091.4,1077.3,1111.8,599,602.7,555.2,8.6,8.7,8
60 | Dec-1982,6318.3,6293.9,6370.1,5223.2,5196.5,5265.2,1095.2,1097.4,1104.9,630.6,651.6,677.5,9.1,9.4,9.6
61 | Jan-1983,6291.3,6289.8,6172,5195.6,5194.1,5182.1,1095.7,1095.7,989.9,656.1,644.3,694.6,9.4,9.3,10.1
62 | Feb-1983,6270.6,6287.6,6263.9,5177.4,5182.8,5198.8,1093.1,1104.9,1065.2,675.6,671.3,750.1,9.7,9.6,10.7
63 | Mar-1983,6257.7,6254.3,6310.3,5168.9,5159.3,5186.3,1088.8,1095,1124,690.5,690.5,733.9,9.9,9.9,10.4
64 | Apr-1983,6253.1,6231.6,6254.5,5169.5,5166.1,5166.4,1083.6,1065.6,1088.1,702.8,703,709.3,10.1,10.1,10.2
65 | May-1983,6255.1,6261.8,6272.8,5176.8,5186.1,5183.4,1078.3,1075.7,1089.4,713.4,719.1,720.5,10.2,10.3,10.3
66 | Jun-1983,6261.8,6269.3,6266.5,5188.3,5189.3,5173.3,1073.4,1079.9,1093.1,720.7,710.3,693.2,10.3,10.2,10
67 | Jul-1983,6273.6,6275.5,6295,5202.8,5201.9,5214.6,1070.8,1073.6,1080.4,723.2,731.6,687.2,10.3,10.4,9.8
68 | Aug-1983,6289.8,6281.1,6241.2,5219,5200.4,5150.4,1070.8,1080.7,1090.8,719.6,713.9,686.8,10.3,10.2,9.9
69 | Sep-1983,6307.4,6315,6358.2,5233.7,5260.5,5285.9,1073.7,1054.5,1072.3,711.3,726.2,720.8,10.1,10.3,10.2
70 | Oct-1983,6325.2,6315.1,6336.1,5246.4,5240.4,5240.5,1078.8,1074.7,1095.6,699.2,700.7,653.2,10,10,9.3
71 | Nov-1983,6343.8,6352.6,6377.5,5257.7,5261.5,5253.3,1086.1,1091.2,1124.2,686.3,678.3,624.8,9.8,9.6,8.9
72 | Dec-1983,6363.8,6377.3,6456.5,5268.3,5272.8,5342.6,1095.4,1104.5,1113.9,674.6,664.1,690,9.6,9.4,9.7
73 | Jan-1984,6384.8,6371.6,6251.4,5279.5,5267.1,5249,1105.3,1104.5,1002.5,665.7,668,717.8,9.4,9.5,10.3
74 | Feb-1984,6407.5,6390.4,6365.4,5292.7,5280.7,5295.4,1114.8,1109.7,1069.9,660,660.8,736.5,9.3,9.4,10.4
75 | Mar-1984,6431,6446.1,6503.2,5308.3,5326.7,5354.7,1122.7,1119.4,1148.6,656,653.2,699.9,9.3,9.2,9.7
76 | Apr-1984,6454.3,6452.7,6477.6,5325.1,5318.1,5318.3,1129.2,1134.7,1159.3,652.2,666.4,675.6,9.2,9.4,9.4
77 | May-1984,6475.5,6477.6,6489.7,5339.7,5337.8,5333,1135.8,1139.8,1156.7,647.1,634.2,635.6,9.1,8.9,8.9
78 | Jun-1984,6493.6,6499.6,6499,5351.2,5361.9,5344,1142.4,1137.7,1155.1,641.2,649,632.5,9,9.1,8.9
79 | Jul-1984,6507.5,6509.5,6528.7,5359.4,5357.9,5371.7,1148.1,1151.6,1157,635.3,632.3,594.9,8.9,8.9,8.4
80 | Aug-1984,6517.3,6506.5,6466.1,5365.7,5371.4,5318.8,1151.6,1135.1,1147.3,629.9,629,604,8.8,8.8,8.5
81 | Sep-1984,6526,6536.4,6579.8,5372.3,5364.5,5388.7,1153.7,1171.9,1191.1,624.7,624.5,620.8,8.7,8.7,8.6
82 | Oct-1984,6536.1,6532.6,6553.2,5381.1,5370.7,5372.1,1155.1,1161.8,1181.1,620.2,620.6,578.4,8.7,8.7,8.1
83 | Nov-1984,6547.8,6548.4,6576.1,5391.8,5397.4,5391.8,1156,1150.9,1184.3,616.7,621.7,571.2,8.6,8.7,8
84 | Dec-1984,6561.2,6552.1,6636,5404.1,5407.2,5480.4,1157.1,1144.9,1155.7,613.9,608.2,627.4,8.6,8.5,8.6
85 | Jan-1985,6575.6,6563.7,6452.4,5416.2,5409.7,5415.6,1159.4,1154.1,1036.8,612.4,612.1,657.7,8.5,8.5,9.3
86 | Feb-1985,6590.1,6624.3,6595.7,5426.3,5438,5452.3,1163.8,1186.4,1143.3,612.1,605.5,674.1,8.5,8.4,9.3
87 | Mar-1985,6604.6,6598.9,6657.4,5434.5,5442.4,5471.8,1170.1,1156.5,1185.6,612.5,625.3,672.8,8.5,8.7,9.2
88 | Apr-1985,6621.2,6606.8,6588.8,5443.6,5430.8,5400.5,1177.6,1176,1188.4,613,606,615.3,8.5,8.4,8.5
89 | May-1985,6639.7,6644.3,6657.9,5455,5455.2,5448.9,1184.7,1189.1,1209,612,606.2,609.1,8.4,8.4,8.4
90 | Jun-1985,6662.6,6657.7,6659.4,5470.2,5464.8,5445,1192.4,1192.9,1214.3,608.9,623.1,607.6,8.4,8.6,8.4
91 | Jul-1985,6690.3,6684.4,6703.4,5488.5,5482.1,5496.8,1201.8,1202.3,1206.6,603.7,601.4,566.9,8.3,8.3,7.8
92 | Aug-1985,6721.8,6725.7,6675.5,5509.2,5519.4,5463.9,1212.6,1206.3,1211.6,597,596.4,572.7,8.2,8.1,7.9
93 | Sep-1985,6754.8,6770.1,6814.7,5532.2,5550.3,5573.8,1222.6,1219.9,1240.9,590.1,592.4,589.2,8,8,8
94 | Oct-1985,6786.1,6754.1,6771.1,5556,5522.3,5522.8,1230.1,1231.7,1248.3,584.5,573.9,534.8,7.9,7.8,7.3
95 | Nov-1985,6815.6,6853.5,6881.9,5579.6,5595.7,5590.3,1236,1257.8,1291.6,581.6,591.4,543.1,7.9,7.9,7.3
96 | Dec-1985,6842.2,6820.9,6910.8,5601.4,5589.9,5668.5,1240.7,1231,1242.3,582.5,574,591.1,7.8,7.8,7.9
97 | Jan-1986,6865.6,6870.3,6753.6,5620.7,5630.4,5632.9,1245,1239.9,1120.8,585.4,580.1,624.8,7.9,7.8,8.5
98 | Feb-1986,6887.1,6890.4,6861.9,5636.5,5652.9,5667.6,1250.6,1237.5,1194.3,588.5,598.1,665.3,7.9,8,8.8
99 | Mar-1986,6905.9,6899.3,6961.9,5648.1,5636.3,5667.8,1257.8,1263,1294.1,591.3,592.6,642.6,7.9,7.9,8.4
100 | Apr-1986,6962.8,6970,6997.9,5655,5651.7,5649.8,1307.8,1318.4,1348.1,590.4,598,608.7,7.8,7.9,8
101 | May-1986,6973.4,6963.1,6979,5659.1,5652.8,5644.2,1314.3,1310.3,1334.7,594.8,592.1,594.5,7.9,7.8,7.8
102 | Jun-1986,6980.9,7002.7,7007.7,5663.2,5684.6,5664,1317.7,1318.1,1343.6,601.5,579.7,563.8,7.9,7.6,7.4
103 | Jul-1986,6985.6,6986.6,6991.5,5667.1,5650.8,5658.6,1318.5,1335.8,1332.8,610.2,616.9,596.1,8,8.1,7.9
104 | Aug-1986,6989.9,6967.7,6918.5,5670.4,5667.5,5608.7,1319.5,1300.2,1309.8,620.2,624.7,597.6,8.1,8.2,8
105 | Sep-1986,6994.7,6992.7,7040.6,5672,5672.2,5694.1,1322.7,1320.4,1346.5,628.6,635.1,633.1,8.2,8.3,8.2
106 | Oct-1986,7001.3,7016.8,7030.4,5672,5685.7,5686.9,1329.3,1331.1,1343.5,633.6,634.7,591,8.3,8.3,7.8
107 | Nov-1986,7010.6,7006.3,7034.2,5672.2,5675.5,5670.6,1338.4,1330.8,1363.5,635.5,635.1,584.2,8.3,8.3,7.7
108 | Dec-1986,7022,7022.8,7116.8,5673.7,5661.2,5744.5,1348.3,1361.6,1372.3,635.8,639.1,655.8,8.3,8.3,8.4
109 | Jan-1987,7034.1,7024.5,6902.5,5676.4,5670.4,5669.7,1357.7,1354.1,1232.9,635.8,624.8,670.7,8.3,8.2,8.9
110 | Feb-1987,7047.5,7055,7022.3,5682.2,5687,5700.7,1365.3,1368,1321.6,636.2,629.4,699.7,8.3,8.2,9.1
111 | Mar-1987,7064.4,7065.3,7133.4,5693,5692.5,5725.8,1371.4,1372.9,1407.6,636.7,648.3,702.8,8.3,8.4,9
112 | Apr-1987,7084.4,7083.3,7109.6,5706.3,5709.8,5705.1,1378.1,1373.5,1404.4,636,641.5,652,8.2,8.3,8.4
113 | May-1987,7105,7088.1,7103.5,5720.2,5707.5,5696.3,1384.8,1380.5,1407.2,633.6,633.1,635.1,8.2,8.2,8.2
114 | Jun-1987,7122.3,7122.7,7128.9,5730.8,5727,5705.8,1391.5,1395.7,1423.1,629.9,619.5,603.1,8.1,8,7.8
115 | Jul-1987,7134.1,7170.9,7175.6,5736.5,5776.2,5786.1,1397.6,1394.7,1389.5,625.7,630.4,610.1,8.1,8.1,7.8
116 | Aug-1987,7143.2,7148,7092.3,5739.6,5730.4,5671.1,1403.6,1417.6,1421.2,622.2,629.5,602,8,8.1,7.8
117 | Sep-1987,7153.6,7136,7186.5,5743.9,5732,5751.3,1409.6,1404,1435.3,619.4,599.1,597.6,8,7.7,7.7
118 | Oct-1987,7168.9,7165.4,7177.4,5753.3,5764.6,5767.3,1415.5,1400.8,1410.1,615.2,629.5,585.4,7.9,8.1,7.5
119 | Nov-1987,7192.6,7155.7,7182.2,5770.9,5727.4,5722.9,1421.7,1428.3,1459.3,609.9,615.6,567.1,7.8,7.9,7.3
120 | Dec-1987,7224.7,7233.2,7330.7,5796.6,5802.3,5890.7,1428.1,1430.9,1440,604.7,604.5,620.6,7.7,7.7,7.8
121 | Jan-1988,7261,7294.4,7169.4,5826.4,5849.1,5844.5,1434.6,1445.4,1324.9,602.3,601.4,646.2,7.7,7.6,8.3
122 | Feb-1988,7294.5,7280.8,7247.3,5854.2,5856.1,5868.4,1440.3,1424.7,1378.9,601.9,581.5,644.7,7.6,7.4,8.2
123 | Mar-1988,7319.8,7323.2,7397.4,5875,5874,5910,1444.7,1449.1,1487.5,601.2,590.9,645.2,7.6,7.5,8
124 | Apr-1988,7337.6,7358.7,7383.4,5888.8,5905.6,5898.8,1448.8,1453.1,1484.6,598.3,632.9,644.8,7.5,7.9,8
125 | May-1988,7352,7341.4,7354.8,5898.8,5892.1,5877.4,1453.2,1449.3,1477.4,592.5,591.3,593,7.5,7.5,7.5
126 | Jun-1988,7367.2,7357.7,7378.3,5909.7,5897.4,5883.3,1457.5,1460.3,1495,582.4,598.6,569,7.3,7.5,7.2
127 | Jul-1988,7386.6,7378.3,7383.1,5925.5,5921.6,5933.6,1461.1,1456.7,1449.5,569.5,535,518.8,7.2,6.8,6.6
128 | Aug-1988,7409.1,7406.9,7353.3,5944.3,5938,5874.5,1464.8,1468.9,1478.8,557.1,562.6,538.7,7,7.1,6.8
129 | Sep-1988,7434.4,7449.6,7503.2,5964,5964.2,5981,1470.4,1485.5,1522.2,548.7,554.5,554.5,6.9,6.9,6.9
130 | Oct-1988,7462.9,7464.8,7477.3,5983.1,6010.1,6016.3,1479.8,1454.6,1461,545.5,545.7,507.9,6.8,6.8,6.4
131 | Nov-1988,7492.6,7486.2,7508.6,6000.8,5998.9,5992.5,1491.8,1487.3,1516.1,544.8,529.2,488.4,6.8,6.6,6.1
132 | Dec-1988,7523.8,7520.1,7622.9,6018.2,6008.2,6103.3,1505.6,1511.9,1519.6,543.2,550.6,563.3,6.7,6.8,6.9
133 | Jan-1989,7557.4,7548.6,7423.8,6037.7,6022.6,6012.4,1519.7,1526,1411.4,539.4,550.6,592,6.7,6.8,7.4
134 | Feb-1989,7592.6,7604.3,7566.5,6060.1,6061.9,6072.1,1532.5,1542.3,1494.4,532.8,539,597.7,6.6,6.6,7.3
135 | Mar-1989,7627.8,7626.8,7634.6,6084.5,6086.1,6076.3,1543.4,1540.8,1558.3,524.5,517.2,545.9,6.4,6.4,6.7
136 | Apr-1989,7661.4,7654.7,7678.4,6108.2,6116.1,6107.2,1553.3,1538.6,1571.2,515.2,506.3,515,6.3,6.2,6.3
137 | May-1989,7691.1,7709.8,7720.8,6127.2,6133.2,6114.1,1564,1576.6,1606.7,506.7,516.6,517.3,6.2,6.3,6.3
138 | Jun-1989,7717.5,7707.5,7711,6140.6,6141.7,6116.1,1576.9,1565.8,1595,500.6,493.2,475.9,6.1,6,5.8
139 | Jul-1989,7741.9,7735.9,7740.8,6150.6,6146.1,6161.2,1591.3,1589.8,1579.6,496.4,498,482.1,6,6,5.9
140 | Aug-1989,7764.7,7773.2,7715.3,6159.6,6165.1,6096.8,1605,1608.1,1618.5,492.5,490.7,468.3,6,5.9,5.7
141 | Sep-1989,7785.6,7782.2,7841.6,6169,6152.3,6168.1,1616.6,1629.9,1673.5,489.5,499.5,499.8,5.9,6,6
142 | Oct-1989,7803.7,7790.4,7806.5,6178.8,6173.4,6183.4,1624.9,1617,1623.1,488.8,490.4,456.4,5.9,5.9,5.5
143 | Nov-1989,7818.6,7843.2,7862.4,6187.9,6213.1,6205.3,1630.7,1630.2,1657.1,491.4,480.8,445.3,5.9,5.8,5.4
144 | Dec-1989,7830.6,7828.5,7935.5,6195,6187.7,6288.8,1635.5,1640.9,1646.7,497,485.6,501,6,5.8,5.9
145 | Jan-1990,7840.7,7833.7,7707.7,6200.4,6200.5,6187.1,1640.2,1633.2,1520.6,504.3,509.5,549.3,6,6.1,6.7
146 | Feb-1990,7851.7,7845.7,7803,6205.3,6201,6207.5,1646.4,1644.7,1595.5,513.4,534.6,592.7,6.1,6.4,7.1
147 | Mar-1990,7864.5,7862.8,7874.1,6211,6212.9,6202.8,1653.5,1649.9,1671.3,524,518.4,547.9,6.2,6.2,6.5
148 | Apr-1990,7877.2,7865.4,7887.9,6217.9,6201.3,6190.3,1659.3,1664,1697.6,536.4,527,533.2,6.4,6.3,6.3
149 | May-1990,7887,7898.3,7908.5,6224.6,6232.1,6210.7,1662.4,1666.2,1697.8,550.5,549.6,548.6,6.5,6.5,6.5
150 | Jun-1990,7890.1,7897.3,7900.3,6226.9,6230.1,6204.7,1663.2,1667.2,1695.6,567.5,559.1,539.6,6.7,6.6,6.4
151 | Jul-1990,7884.6,7898,7919.4,6221.7,6231.5,6258.2,1662.9,1666.5,1661.2,587.1,599,567,6.9,7,6.7
152 | Aug-1990,7871.6,7868,7808,6209.3,6212.4,6141.5,1662.3,1655.5,1666.5,608,611,584.6,7.2,7.2,7
153 | Sep-1990,7853.9,7843,7905.5,6190.9,6195,6210.8,1663,1648,1694.7,628,624.5,625,7.4,7.4,7.3
154 | Oct-1990,7833.6,7828.4,7848.9,6167.6,6150.7,6165.3,1666,1677.7,1683.6,645.8,647.1,603.1,7.6,7.6,7.1
155 | Nov-1990,7811.8,7808.7,7826.9,6140,6132,6125.2,1671.8,1676.7,1701.7,665,672.5,625.8,7.8,7.9,7.4
156 | Dec-1990,7789.6,7811.8,7915.5,6109.7,6129.3,6229.4,1680,1682.5,1686.1,688.7,680,700.8,8.1,8,8.1
157 | Jan-1991,7767,7750.7,7641.3,6077.5,6086.1,6104.6,1689.5,1664.7,1536.7,716.9,709,763.3,8.4,8.4,9.1
158 | Feb-1991,7743.6,7757.5,7708.8,6044.8,6042.8,6044.3,1698.8,1714.7,1664.5,747.1,730.6,807.5,8.8,8.6,9.5
159 | Mar-1991,7719.3,7702.1,7715.4,6012.9,5997.4,5987.3,1706.4,1704.7,1728.1,774.6,778,818.7,9.1,9.2,9.6
160 | Apr-1991,7696.2,7695.5,7717.2,5984.1,5975,5963.3,1712.1,1720.5,1754,796.5,841.4,849.5,9.4,9.9,9.9
161 | May-1991,7676.5,7693.1,7703.7,5962.5,5980,5959.3,1714,1713.1,1744.4,811.6,807.6,805.4,9.6,9.5,9.5
162 | Jun-1991,7660.1,7655.1,7678.1,5948.3,5942.9,5930.5,1711.8,1712.3,1747.6,820.1,803.2,757.7,9.7,9.5,9
163 | Jul-1991,7645.7,7630.8,7583,5938.3,5923.2,5900.9,1707.5,1707.6,1682.1,825.4,818.8,797.4,9.7,9.7,9.5
164 | Aug-1991,7632.8,7634.8,7620.7,5929.2,5931.6,5902.2,1703.7,1703.3,1718.5,831.6,828.3,796.6,9.8,9.8,9.5
165 | Sep-1991,7623.4,7644.2,7713.2,5920,5933.6,5952.3,1703.3,1710.6,1760.9,840.9,852.3,854.1,9.9,10,10
166 | Oct-1991,7618.3,7615.3,7638,5911.2,5938.8,5955.2,1707.2,1676.4,1682.7,853.3,844.3,789,10.1,10,9.4
167 | Nov-1991,7618.6,7596.3,7614.9,5902.8,5857.9,5853.8,1715.8,1738.4,1761.1,865.6,860.8,806.2,10.2,10.2,9.6
168 | Dec-1991,7621.9,7615.9,7712.2,5894.6,5896.6,5990.8,1727.4,1719.3,1721.3,874.7,889.6,906,10.3,10.5,10.5
169 | Jan-1992,7625.7,7634.9,7518.9,5885.4,5897.6,5905.9,1740.3,1737.3,1613.1,881.2,879.6,948.6,10.4,10.3,11.2
170 | Feb-1992,7628.5,7649.8,7597.2,5875.7,5883.4,5881.7,1752.7,1766.4,1715.5,887.1,888.2,982.8,10.4,10.4,11.5
171 | Mar-1992,7630.7,7631.2,7646.2,5866.1,5868.2,5858,1764.6,1763,1788.1,894.4,893.7,935.3,10.5,10.5,10.9
172 | Apr-1992,7632.5,7624.3,7644.1,5856.4,5850.9,5838.1,1776.1,1773.4,1806,902.6,890.6,894.6,10.6,10.5,10.5
173 | May-1992,7635.8,7620.2,7631.4,5847.4,5842.9,5822.7,1788.3,1777.3,1808.7,910.9,904.7,901.7,10.7,10.6,10.6
174 | Jun-1992,7640.6,7632.3,7637.3,5839.3,5827.3,5804.7,1801.3,1805,1832.6,918.7,926.1,894.8,10.7,10.8,10.5
175 | Jul-1992,7643.4,7649.2,7668.3,5831.9,5842.1,5868.1,1811.5,1807.2,1800.1,925.9,953.1,904.8,10.8,11.1,10.6
176 | Aug-1992,7642.5,7671.1,7613.4,5824.3,5836.7,5769.7,1818.2,1834.3,1843.7,931.6,920.9,886.2,10.9,10.7,10.4
177 | Sep-1992,7636.1,7634.1,7709.7,5816.5,5820.6,5841.9,1819.5,1813.5,1867.8,936.4,906.3,910.3,10.9,10.6,10.6
178 | Oct-1992,7625.8,7643.6,7665.7,5810.7,5812.5,5828.2,1815,1831.1,1837.5,940.1,952.8,893.7,11,11.1,10.4
179 | Nov-1992,7615.6,7568.8,7587.4,5809.5,5778.5,5774.6,1806.1,1790.2,1812.8,942.4,946.9,888.2,11,11.1,10.5
180 | Dec-1992,7608.9,7598.7,7693.4,5813.8,5810.2,5904.3,1795.1,1788.4,1789.1,942.5,958.4,969.2,11,11.2,11.2
181 | Jan-1993,7607.2,7650.1,7533.7,5823.5,5848.5,5848.9,1783.7,1801.7,1684.8,939.8,928.4,998.9,11,10.8,11.7
182 | Feb-1993,7609.1,7581.6,7531,5836,5820.8,5819.3,1773,1760.8,1711.6,934.4,938.5,1039.3,10.9,11,12.1
183 | Mar-1993,7611.9,7631.3,7645.7,5847.7,5860.1,5849.3,1764.2,1771.2,1796.5,929,928,972.4,10.9,10.8,11.3
184 | Apr-1993,7613.6,7610.3,7572.6,5855.4,5856,5808.2,1758.3,1754.3,1764.3,926.3,916.8,920.9,10.8,10.8,10.8
185 | May-1993,7616,7612.4,7620.5,5858.8,5852.6,5831.1,1757.3,1759.8,1789.4,927,919.5,915.4,10.8,10.8,10.7
186 | Jun-1993,7622.2,7625.1,7627.9,5860.1,5877.2,5852.6,1762.1,1747.9,1775.3,929.8,943,911.2,10.9,11,10.7
187 | Jul-1993,7635.5,7626,7646.5,5863.3,5852.7,5880.7,1772.2,1773.3,1765.8,934,932.6,885.2,10.9,10.9,10.4
188 | Aug-1993,7654.5,7651.8,7589.4,5869.4,5866.7,5796.8,1785.2,1785.1,1792.6,938.2,943.8,909.5,10.9,11,10.7
189 | Sep-1993,7676.9,7669.1,7747.6,5878.4,5861.3,5885.7,1798.5,1807.8,1861.9,941,922.3,927.4,10.9,10.7,10.7
190 | Oct-1993,7701.9,7718.6,7738.8,5890.7,5901.8,5916.6,1811.2,1816.8,1822.2,941.1,948.8,892.6,10.9,10.9,10.3
191 | Nov-1993,7725.8,7729.1,7744.9,5903.7,5908,5902.9,1822.1,1821.1,1842,938.2,949,892.9,10.8,10.9,10.3
192 | Dec-1993,7747.4,7744.7,7842.1,5915.6,5926.9,6024.2,1831.8,1817.8,1817.9,931.5,932,939.3,10.7,10.7,10.7
193 | Jan-1994,7765.9,7763.3,7646.8,5926.1,5916.6,5911,1839.8,1846.6,1735.8,920.8,916.6,983.5,10.6,10.6,11.4
194 | Feb-1994,7783.7,7789.4,7738.6,5936.4,5938.1,5937.3,1847.3,1851.3,1801.3,906.7,904.3,1005.1,10.4,10.4,11.5
195 | Mar-1994,7803.5,7808.5,7824.2,5948.2,5949.3,5937.5,1855.2,1859.2,1886.7,891.1,900.2,945,10.2,10.3,10.8
196 | Apr-1994,7827.6,7811.7,7827.4,5963.8,5950.8,5936,1863.8,1860.9,1891.4,876.2,872.4,876.4,10.1,10,10.1
197 | May-1994,7856.2,7852.5,7857.9,5983,5981.1,5957.3,1873.1,1871.5,1900.6,863.1,849.1,844.4,9.9,9.8,9.7
198 | Jun-1994,7886.4,7874.6,7878.4,6003.8,6015.4,5988.6,1882.6,1859.2,1889.8,851.1,858.6,828.6,9.7,9.8,9.5
199 | Jul-1994,7916,7946.2,7966,6023.6,6023.6,6053.2,1892.4,1922.6,1912.8,839.7,843.5,798.7,9.6,9.6,9.1
200 | Aug-1994,7942.3,7932.1,7861.7,6039.3,6026,5955.5,1903,1906.1,1906.2,828.6,827,796.1,9.4,9.4,9.2
201 | Sep-1994,7964.9,7981,8054.4,6051,6083.7,6104.7,1913.8,1897.3,1949.7,817.9,823.9,829.3,9.3,9.4,9.3
202 | Oct-1994,7984.5,7977.9,7997.2,6059.7,6044.9,6059.4,1924.8,1933,1937.7,808.2,797,750.9,9.2,9.1,8.6
203 | Nov-1994,8004.4,7989.3,8003.3,6068.4,6072.1,6065.6,1936,1917.1,1937.7,798.8,802.9,755,9.1,9.1,8.6
204 | Dec-1994,8027.5,8033.7,8135.5,6080.1,6069.9,6172,1947.4,1963.8,1963.5,789.7,787,791,9,8.9,8.9
205 | Jan-1995,8054.9,8044.7,7928.4,6097,6080.7,6074.1,1957.9,1964,1854.3,780.4,781,836.4,8.8,8.8,9.5
206 | Feb-1995,8085.2,8098.5,8049.9,6118.3,6141.3,6143.1,1966.9,1957.3,1906.7,770.9,784,873.7,8.7,8.8,9.8
207 | Mar-1995,8116.2,8101.8,8118.1,6142.5,6122.6,6110,1973.7,1979.3,2008.1,761.9,762.9,804.1,8.6,8.6,9
208 | Apr-1995,8146.4,8159.9,8174.6,6167.2,6179.5,6163.7,1979.3,1980.4,2010.9,754.2,734,737.8,8.5,8.3,8.3
209 | May-1995,8171.9,8165.2,8165.2,6188.3,6190.7,6162,1983.6,1974.5,2003.2,748.9,755.3,750.8,8.4,8.5,8.4
210 | Jun-1995,8191.9,8200.4,8205.6,6205,6211.3,6180.6,1986.9,1989.1,2025.1,747.7,748.3,723.5,8.4,8.4,8.1
211 | Jul-1995,8207.7,8205.9,8229,6216.4,6205,6238.3,1991.3,2000.9,1990.7,749.4,752.5,708.8,8.4,8.4,7.9
212 | Aug-1995,8221.3,8236.6,8165.9,6224.9,6235.6,6160.9,1996.3,2001,2005,752.5,747.3,718.9,8.4,8.3,8.1
213 | Sep-1995,8235.3,8223.8,8300.4,6232.9,6240.6,6263.6,2002.3,1983.2,2036.7,755,750.9,756.8,8.4,8.4,8.4
214 | Oct-1995,8249.6,8213.9,8232.6,6240.3,6214.5,6228.5,2009.3,1999.4,2004.1,755.6,769.6,725.7,8.4,8.6,8.1
215 | Nov-1995,8263.3,8286.9,8300.3,6247.3,6251.2,6244.6,2016,2035.7,2055.6,755.3,764,719.9,8.4,8.4,8
216 | Dec-1995,8274.4,8289.3,8395.7,6252.4,6254,6360.1,2022,2035.3,2035.5,755.9,733.7,736,8.4,8.1,8.1
217 | Jan-1996,8282.4,8283.4,8166.7,6255.4,6277.3,6265.5,2027,2006.1,1901.2,756.7,764,817.7,8.4,8.4,9.1
218 | Feb-1996,8287.1,8292.3,8246.6,6256.5,6254.8,6259.6,2030.6,2037.5,1987,757.6,753.7,839.7,8.4,8.3,9.2
219 | Mar-1996,8290.1,8265.7,8280.4,6256.9,6234,6220.2,2033.1,2031.7,2060.2,759,759.3,799.2,8.4,8.4,8.8
220 | Apr-1996,8292.4,8293.9,8248,6256.7,6260.1,6207.6,2035.6,2033.8,2040.5,761.3,776.8,782.2,8.4,8.6,8.7
221 | May-1996,8295.7,8300.8,8297.1,6256.9,6261.9,6230.6,2038.9,2038.9,2066.6,764.9,761.8,758.1,8.4,8.4,8.4
222 | Jun-1996,8299.3,8304.6,8311.7,6257.5,6255.5,6222.9,2041.8,2049.2,2088.8,769.1,747.7,723.8,8.5,8.3,8
223 | Jul-1996,8300.6,8306,8332.1,6257.3,6268.9,6303.8,2043.3,2037.1,2028.3,773.8,775.9,727.3,8.5,8.5,8
224 | Aug-1996,8300.5,8300,8265.9,6256.1,6249.8,6208.4,2044.3,2050.2,2057.5,778.4,793.3,763.6,8.6,8.7,8.5
225 | Sep-1996,8300.9,8294.8,8373,6253.9,6249.8,6273.9,2047.1,2044.9,2099,781.7,778.4,785.4,8.6,8.6,8.6
226 | Oct-1996,8304,8301.5,8319.4,6251.8,6251.2,6264.6,2052.2,2050.2,2054.8,783.7,796.2,751.9,8.6,8.8,8.3
227 | Nov-1996,8310.8,8299.5,8314.4,6250.2,6245.1,6240.4,2060.6,2054.4,2073.9,784.3,767.2,722.9,8.6,8.5,8
228 | Dec-1996,8319.3,8324.3,8431.4,6248,6258.8,6366,2071.3,2065.5,2065.4,784.3,784.7,786.9,8.6,8.6,8.5
229 | Jan-1997,8327.2,8337.9,8235.2,6244.5,6246,6264.3,2082.7,2091.9,1971,784,779.7,833.1,8.6,8.6,9.2
230 | Feb-1997,8332.9,8334.3,8291.4,6240.2,6238.3,6246,2092.6,2096,2045.4,783.7,795.2,886.9,8.6,8.7,9.7
231 | Mar-1997,8334.7,8337.3,8347.5,6234.8,6234.1,6218.3,2099.8,2103.1,2129.2,782.9,783.1,823.7,8.6,8.6,9
232 | Apr-1997,8334.1,8330.5,8343.1,6230.2,6226.1,6208.4,2103.9,2104.3,2134.7,781.2,778.8,785.1,8.6,8.5,8.6
233 | May-1997,8333.1,8334.3,8330.2,6227.5,6235,6203,2105.6,2099.3,2127.2,778,778.1,774.9,8.5,8.5,8.5
234 | Jun-1997,8335.6,8335.5,8345.6,6228.3,6220.2,6187.3,2107.2,2115.3,2158.3,772.8,757.8,735.2,8.5,8.3,8.1
235 | Jul-1997,8344.4,8346.1,8374.9,6233.1,6240.6,6276.5,2111.3,2105.5,2098.4,766.2,781.9,731.4,8.4,8.6,8
236 | Aug-1997,8359.6,8333,8250.3,6241.1,6221.4,6143.8,2118.5,2111.6,2106.5,758,770.5,743.4,8.3,8.5,8.3
237 | Sep-1997,8379.3,8394.8,8474,6251.5,6265.5,6290.7,2127.8,2129.3,2183.3,748.5,737.2,744.7,8.2,8.1,8.1
238 | Oct-1997,8400.1,8388.7,8405.2,6262.3,6256.5,6267.2,2137.7,2132.2,2138,738.8,731.9,692.1,8.1,8,7.6
239 | Nov-1997,8419,8446,8462.1,6272.9,6287,6283.8,2146.1,2159,2178.3,730.1,732.9,690.8,8,8,7.5
240 | Dec-1997,8434.3,8432.9,8540.5,6281.9,6270.9,6379.4,2152.4,2161.9,2161.1,723,722.8,720.5,7.9,7.9,7.8
241 | Jan-1998,8445.9,8441.2,8334.7,6287.8,6293.6,6306.1,2158.1,2147.7,2028.6,717.6,719.3,770.1,7.8,7.9,8.5
242 | Feb-1998,8455.5,8452.6,8413,6291.2,6288.8,6301.1,2164.3,2163.8,2111.9,714.4,713.1,794.7,7.8,7.8,8.6
243 | Mar-1998,8464.8,8455.5,8460,6293.3,6294.6,6275.9,2171.4,2160.9,2184,713.2,723.2,757.9,7.8,7.9,8.2
244 | Apr-1998,8475.8,8488,8499.9,6296.7,6312.6,6292.7,2179.1,2175.4,2207.2,714.6,696.7,702.9,7.8,7.6,7.6
245 | May-1998,8489.8,8486.2,8482.5,6303.1,6280.7,6248.3,2186.7,2205.5,2234.2,717.3,713.2,711.2,7.8,7.8,7.7
246 | Jun-1998,8506.7,8505.9,8516.8,6312.6,6303.2,6268.9,2194.1,2202.7,2247.9,719.7,722.8,702.8,7.8,7.8,7.6
247 | Jul-1998,8524.2,8517.9,8541.9,6322.9,6329.6,6365.2,2201.3,2188.3,2176.7,719.8,735.8,686.7,7.8,8,7.4
248 | Aug-1998,8541.3,8530.9,8455.2,6332.7,6335.6,6257,2208.6,2195.3,2198.2,716.1,717.1,690.2,7.7,7.8,7.5
249 | Sep-1998,8556,8573.6,8653.2,6339.8,6356.2,6381.4,2216.1,2217.5,2271.8,708,709.1,716.1,7.6,7.6,7.6
250 | Oct-1998,8567.5,8585.2,8601,6344.4,6351.5,6360.7,2223.1,2233.7,2240.3,696.7,676.7,640.4,7.5,7.3,6.9
251 | Nov-1998,8576.8,8557.4,8554.3,6347.8,6323.4,6324.1,2229,2234,2230.2,683.9,707.2,665.3,7.4,7.6,7.2
252 | Dec-1998,8583.7,8586.4,8696.5,6351,6347.9,6460.4,2232.6,2238.5,2236.2,672.9,663,659.1,7.3,7.2,7
253 | Jan-1999,8589.8,8585.8,8477.4,6355.6,6363.7,6373.1,2234.2,2222.1,2104.3,664.2,657.3,702.5,7.2,7.1,7.7
254 | Feb-1999,8597.1,8593.7,8556.5,6361.4,6361.3,6377.3,2235.7,2232.5,2179.2,656.5,658.8,735.8,7.1,7.1,7.9
255 | Mar-1999,8607.3,8620.3,8618.9,6368.5,6379.1,6358.4,2238.8,2241.2,2260.5,648.5,649.6,683.5,7,7,7.3
256 | Apr-1999,8620.1,8622.1,8631.9,6377,6380.4,6356.6,2243.1,2241.7,2275.4,641.5,645.4,652.8,6.9,7,7
257 | May-1999,8634.6,8610.2,8606.5,6387.2,6361,6327.8,2247.4,2249.2,2278.7,637.3,649.3,649,6.9,7,7
258 | Jun-1999,8650.7,8661.2,8673.2,6400,6403.9,6368.2,2250.7,2257.2,2305,635.7,617.1,600.6,6.8,6.7,6.5
259 | Jul-1999,8670.4,8679.2,8706.7,6416.6,6423.7,6460.8,2253.8,2255.5,2245.8,634.9,619,575.5,6.8,6.7,6.2
260 | Aug-1999,8691.8,8687.2,8603.6,6434.4,6436.9,6356.9,2257.4,2250.4,2246.7,634.7,644.6,619.7,6.8,6.9,6.7
261 | Sep-1999,8712.1,8700,8777.1,6449.6,6443.8,6466.9,2262.5,2256.2,2310.2,634.2,659.5,668.8,6.8,7,7.1
262 | Oct-1999,8729.3,8741.2,8755.3,6460.1,6468,6474.7,2269.2,2273.2,2280.5,632.9,634.6,600.3,6.8,6.8,6.4
263 | Nov-1999,8744.3,8750,8763.7,6466.9,6471.1,6467.3,2277.5,2278.8,2296.4,630.6,602.8,565.7,6.7,6.4,6.1
264 | Dec-1999,8759.8,8786.3,8900.7,6472.1,6489.2,6606.9,2287.7,2297.1,2293.7,627.7,628,625.7,6.7,6.7,6.6
265 | Jan-2000,8777,8736.4,8628.2,6478.5,6453.1,6458.7,2298.5,2283.3,2169.5,624.6,633.8,674.8,6.6,6.8,7.3
266 | Feb-2000,8797.4,8788.4,8754.4,6489,6475.3,6496.9,2308.4,2313.1,2257.5,621.2,623.3,699.2,6.6,6.6,7.4
267 | Mar-2000,8823.8,8836.4,8830.7,6505.5,6520.9,6498.2,2318.3,2315.5,2332.5,616,620.3,652.8,6.5,6.6,6.9
268 | Apr-2000,8857.3,8873.2,8882.2,6528.7,6534.1,6506.9,2328.7,2339,2375.3,607.7,603.1,612.2,6.4,6.4,6.4
269 | May-2000,8895.8,8869.5,8865,6555.8,6525,6490.4,2340,2344.5,2374.6,596.3,606.6,607.3,6.3,6.4,6.4
270 | Jun-2000,8931.4,8909.2,8922,6581.4,6588.5,6551.7,2350.1,2320.7,2370.3,585.1,579.8,564.3,6.1,6.1,5.9
271 | Jul-2000,8956.9,8991.4,9020,6600.3,6624.3,6661.4,2356.6,2367.1,2358.6,577.5,567.6,525.6,6.1,5.9,5.5
272 | Aug-2000,8968.6,8988.2,8911.6,6608.8,6603,6522.2,2359.7,2385.2,2389.4,573.6,579.1,556.1,6,6.1,5.9
273 | Sep-2000,8968.4,8983.6,9061.3,6606.4,6627.6,6649.3,2362,2356,2412,573.8,570,578.1,6,6,6
274 | Oct-2000,8959,8960,8973.1,6595.3,6588.2,6593.2,2363.6,2371.8,2379.9,577.4,572.2,541.1,6.1,6,5.7
275 | Nov-2000,8946.8,8902.1,8912.7,6580.3,6571.7,6568.5,2366.6,2330.4,2344.3,583.6,595.4,557.4,6.1,6.3,5.9
276 | Dec-2000,8940.3,8944.7,9059.6,6567.9,6568.3,6688.6,2372.4,2376.3,2370.9,591.8,594.5,592.2,6.2,6.2,6.1
277 | Jan-2001,8944.3,8949.1,8834.9,6561.8,6539.9,6534,2382.5,2409.2,2300.9,601.6,585.3,625.7,6.3,6.1,6.6
278 | Feb-2001,8957.2,8953.5,8920.9,6559.4,6555.7,6580.9,2397.7,2397.8,2340,613,622.8,700.4,6.4,6.5,7.3
279 | Mar-2001,8974.1,8963.3,8956,6556.6,6576.2,6552.6,2417.4,2387.1,2403.5,625.2,618,650.2,6.5,6.5,6.8
280 | Apr-2001,8990.9,9014,9023.6,6550.2,6557.4,6528.1,2440.7,2456.7,2495.6,650.4,654.7,663.6,6.7,6.8,6.9
281 | May-2001,9004.5,9007.5,9004.6,6539.1,6553,6518.4,2465.4,2454.6,2486.2,659.2,665.3,664.2,6.8,6.9,6.9
282 | Jun-2001,9015.1,9003.8,9021.9,6525.9,6519.6,6483.9,2489.2,2484.2,2537.9,665.8,670.1,651.5,6.9,6.9,6.7
283 | Jul-2001,9024.2,9024,9048.9,6514.6,6492.3,6526.8,2509.6,2531.6,2522,670.2,665.1,611.9,6.9,6.9,6.3
284 | Aug-2001,9031.4,9046.1,8971.9,6508.9,6509.8,6431.8,2522.6,2536.3,2540.1,673.6,668.8,638.1,6.9,6.9,6.6
285 | Sep-2001,9039,9027.3,9105.9,6510.2,6507.1,6603.8,2528.8,2520.2,2502.2,676.8,663.1,671.2,7,6.8,6.9
286 | Oct-2001,9049.5,9045.4,9058.7,6517.3,6526.4,6528,2532.3,2519,2530.7,678.1,700,657.9,7,7.2,6.8
287 | Nov-2001,9063.4,9071.8,9055.6,6526,6524.6,6525.6,2537.4,2547.2,2530.1,676.2,671.8,626.3,6.9,6.9,6.5
288 | Dec-2001,9078.5,9064.9,9177.1,6535,6538.6,6658.4,2543.5,2526.3,2518.7,669.1,666.9,660,6.9,6.9,6.7
289 | Jan-2002,9094,9090.7,8993.4,6542.7,6542.8,6575.4,2551.4,2547.9,2418,658.2,674.2,734.8,6.7,6.9,7.6
290 | Feb-2002,9107.9,9126.3,9092.3,6548.4,6541.8,6571.3,2559.6,2584.5,2521,645.4,638.1,719.9,6.6,6.5,7.3
291 | Mar-2002,9119.7,9131.6,9128.5,6553.3,6565.8,6542.4,2566.4,2565.8,2586.1,633.6,626.5,660,6.5,6.4,6.7
292 | Apr-2002,9131,9118.8,9129.5,6558.6,6544,6513.6,2572.4,2574.8,2616,625.4,616.7,625.7,6.4,6.3,6.4
293 | May-2002,9143.8,9134.8,9134.7,6564.4,6589.8,6557,2579.4,2545,2577.7,621.2,620.2,620.9,6.4,6.4,6.4
294 | Jun-2002,9158.9,9160.1,9180.8,6570.3,6544.1,6509.4,2588.7,2616,2671.4,619.1,635.8,619.7,6.3,6.5,6.3
295 | Jul-2002,9176.7,9167.1,9194.5,6576.6,6572.6,6604.1,2600.2,2594.5,2590.4,618.4,602.8,553,6.3,6.2,5.7
296 | Aug-2002,9198.8,9223,9150.3,6584.6,6613.3,6537.1,2614.2,2609.7,2613.2,617.6,626.4,595.2,6.3,6.4,6.1
297 | Sep-2002,9226.7,9226.2,9303.5,6597.4,6591.2,6687.6,2629.3,2635,2615.9,615.4,621.9,631.4,6.3,6.3,6.4
298 | Oct-2002,9260,9234.3,9249.1,6615.9,6593.2,6591.5,2644.1,2641.1,2657.6,612.6,601.8,566.2,6.2,6.1,5.8
299 | Nov-2002,9295.5,9284.8,9286.7,6637.1,6624.5,6621.5,2658.3,2660.3,2665.2,609.9,610,565.9,6.2,6.2,5.7
300 | Dec-2002,9329.4,9327.3,9439.7,6658,6665.4,6787,2671.4,2661.8,2652.7,607.6,613.8,607.4,6.1,6.2,6
301 | Jan-2003,9356.9,9383.6,9281.7,6673.5,6690,6717.4,2683.4,2693.6,2564.3,605.6,606.5,663,6.1,6.1,6.7
302 | Feb-2003,9372.7,9405.4,9372.6,6680.5,6709.8,6744.8,2692.2,2695.7,2627.8,604.4,595.3,673.2,6.1,6,6.7
303 | Mar-2003,9376,9359.1,9362.1,6678,6665,6642,2697.9,2694.1,2720.1,604.5,610.3,642.9,6.1,6.1,6.4
304 | Apr-2003,9370,9357.1,9365.6,6669.4,6656.2,6623,2700.5,2700.9,2742.6,604.4,599.4,608.9,6.1,6,6.1
305 | May-2003,9363,9375.2,9380.1,6662.5,6679.3,6647.9,2700.5,2695.9,2732.2,603.4,604.4,605.9,6.1,6.1,6.1
306 | Jun-2003,9362,9351.2,9370.4,6663.7,6637.5,6601.4,2698.3,2713.7,2769.1,600.9,602.3,587.6,6,6.1,5.9
307 | Jul-2003,9369.7,9342.9,9363.9,6674.8,6663.7,6693.2,2694.9,2679.1,2670.8,596.2,609.1,557.6,6,6.1,5.6
308 | Aug-2003,9385.2,9398.9,9327,6694.7,6705.2,6631.1,2690.5,2693.7,2695.8,589.4,581.3,552.4,5.9,5.8,5.6
309 | Sep-2003,9403.6,9408.5,9486.1,6718.5,6718,6814.2,2685,2690.5,2671.9,582,577,583.8,5.8,5.8,5.8
310 | Oct-2003,9421.8,9431.9,9447.8,6742.2,6750.4,6744.6,2679.6,2681.5,2703.1,574.9,577.8,544.3,5.8,5.8,5.4
311 | Nov-2003,9438.2,9429.7,9427.7,6763.1,6763.8,6760.3,2675.2,2666,2667.4,569.1,565.6,523.4,5.7,5.7,5.3
312 | Dec-2003,9452,9459.6,9573.6,6778.7,6775.4,6898.1,2673.2,2684.2,2675.5,564.3,569.3,563.4,5.6,5.7,5.6
313 | Jan-2004,9463.7,9462.7,9363.8,6789.1,6805.1,6827.2,2674.6,2657.6,2536.6,559.7,553.2,603.8,5.6,5.5,6.1
314 | Feb-2004,9475.4,9464.8,9434.5,6796.7,6778.3,6818.3,2678.7,2686.5,2616.2,555.1,565.7,640.8,5.5,5.6,6.4
315 | Mar-2004,9487.9,9498.2,9506.4,6803.2,6818.6,6796,2684.8,2679.6,2710.4,551.2,545.2,575.9,5.5,5.4,5.7
316 | Apr-2004,9500.2,9507.8,9512,6809.2,6813.5,6778.7,2691,2694.2,2733.4,549.7,553.3,561.8,5.5,5.5,5.6
317 | May-2004,9512.9,9524.2,9533.5,6816.4,6814.2,6785.4,2696.4,2710.1,2748,550.1,535.7,538.1,5.5,5.3,5.3
318 | Jun-2004,9528,9528.7,9543.3,6826.2,6831.5,6793.7,2701.8,2697.2,2749.6,550.9,550.2,537.3,5.5,5.5,5.3
319 | Jul-2004,9547.3,9537.4,9553.1,6839.5,6837.9,6865,2707.8,2699.5,2688.1,550.4,559.8,512.3,5.5,5.5,5.1
320 | Aug-2004,9571.3,9533.6,9462.1,6855.7,6846,6773,2715.7,2687.6,2689.1,547.2,558,529.4,5.4,5.5,5.3
321 | Sep-2004,9600.3,9591.1,9668.6,6874.7,6860,6956.7,2725.6,2731.1,2711.9,540.9,544.6,551.3,5.3,5.4,5.4
322 | Oct-2004,9633.1,9645.4,9662.2,6896.4,6910.6,6900.9,2736.7,2734.8,2761.3,532.8,519.9,490.1,5.2,5.1,4.8
323 | Nov-2004,9669,9678.9,9652.9,6920.7,6924.7,6928.2,2748.2,2754.3,2724.8,525.7,526.8,485.9,5.2,5.2,4.8
324 | Dec-2004,9706.2,9692,9807.8,6946.8,6936.5,7059.5,2759.4,2755.5,2748.3,521.9,517,514.1,5.1,5.1,5
325 | Jan-2005,9742.5,9741.6,9634.4,6973.2,6965.3,6974.7,2769.3,2776.3,2659.7,522.2,520.2,568.9,5.1,5.1,5.6
326 | Feb-2005,9776.1,9774.3,9744.6,6998.3,7012.6,7057.6,2777.8,2761.7,2687,524.6,523.1,592,5.1,5.1,5.7
327 | Mar-2005,9807.3,9815.5,9828.3,7021.6,7014.5,6990.9,2785.7,2801,2837.4,526.6,533.5,565.3,5.1,5.2,5.4
328 | Apr-2005,9836.3,9854.1,9856.3,7042.7,7061.4,7025.6,2793.5,2792.7,2830.7,526.3,531.2,539.5,5.1,5.1,5.2
329 | May-2005,9862.5,9838.8,9850.8,7059.8,7033.2,7005.5,2802.8,2805.6,2845.2,524.3,527.5,530.7,5,5.1,5.1
330 | Jun-2005,9885,9884.8,9896.6,7071.4,7086.9,7047.2,2813.6,2797.9,2849.4,521.4,514.4,502.5,5,4.9,4.8
331 | Jul-2005,9904,9899.4,9912.3,7078,7077.6,7104,2825.9,2821.8,2808.3,518.4,517.3,473.6,5,5,4.6
332 | Aug-2005,9919.2,9942.8,9870.3,7081.8,7095.6,7023,2837.4,2847.2,2847.4,517,513.4,486.6,5,4.9,4.7
333 | Sep-2005,9929.9,9927.8,10004.6,7085,7082.5,7180.7,2844.9,2845.3,2823.8,518.5,522.6,527.7,5,5,5
334 | Oct-2005,9937.7,9932.7,9949.7,7089.4,7063.8,7048.6,2848.3,2868.9,2901.1,522.2,523.5,494,5,5,4.7
335 | Nov-2005,9945,9945,9945,7096.4,7107.9,7109.2,2848.6,2837.1,2835.8,526.7,516.1,476.4,5,4.9,4.6
336 | Dec-2005,9954.9,9957,10074.7,7106,7099,7221,2848.9,2858,2853.7,530,531.5,525.8,5.1,5.1,5
337 | Jan-2006,9969.9,9951.6,9842.7,7118.1,7130.6,7133,2851.8,2821,2709.7,531.1,541.7,591.5,5.1,5.2,5.7
338 | Feb-2006,9990.6,9991.9,9961.1,7131.4,7136.7,7184,2859.2,2855.2,2777.1,529.2,536.8,606.7,5,5.1,5.7
339 | Mar-2006,10016.3,10033.6,10048.7,7146.1,7139.1,7115.2,2870.2,2894.5,2933.4,524.6,512.6,542.8,5,4.9,5.1
340 | Apr-2006,10046.6,10040.4,10041,7164.4,7158.2,7122.5,2882.3,2882.2,2918.5,518.6,523.7,533,4.9,5,5
341 | May-2006,10080.5,10069,10082.1,7187.4,7182.9,7157.8,2893.2,2886.2,2924.3,512.3,506.5,509.9,4.8,4.8,4.8
342 | Jun-2006,10114.4,10108.6,10120.8,7213.3,7208.4,7169.6,2901.2,2900.2,2951.2,506.7,510.2,498.2,4.8,4.8,4.7
343 | Jul-2006,10146.2,10159.8,10170.8,7238.6,7244.6,7268.2,2907.6,2915.2,2902.6,501.9,495.7,454.6,4.7,4.7,4.3
344 | Aug-2006,10174.4,10177.5,10105.8,7261.1,7268.4,7196.8,2913.3,2909.1,2909,497.5,504,477.5,4.7,4.7,4.5
345 | Sep-2006,10198.9,10222.6,10299.5,7279.6,7307.4,7409.7,2919.4,2915.2,2889.8,493.6,500,504.5,4.6,4.7,4.7
346 | Oct-2006,10219.7,10195.4,10212.4,7295.9,7270.9,7251,2923.8,2924.6,2961.4,491.1,475.5,449.6,4.6,4.5,4.2
347 | Nov-2006,10238.6,10225.7,10201.6,7312.5,7298.2,7307.1,2926.1,2927.5,2894.5,490.4,483.3,446.7,4.6,4.5,4.2
348 | Dec-2006,10258.7,10281.9,10404.3,7332,7341.7,7465.7,2926.7,2940.2,2938.6,490.2,492,487,4.6,4.6,4.5
349 | Jan-2007,10282.2,10270.4,10156.1,7355.6,7352.6,7345.6,2926.6,2917.9,2810.6,489.6,490.2,534.5,4.5,4.6,5
350 | Feb-2007,10308.7,10306.8,10277,7381.9,7380.8,7429.2,2926.8,2926,2847.7,487.2,500.3,567.2,4.5,4.6,5.2
351 | Mar-2007,10336.8,10336.3,10349.2,7408.7,7418.6,7393.4,2928.1,2917.7,2955.8,483,482.1,512,4.5,4.5,4.7
352 | Apr-2007,10366.1,10364.9,10362.9,7432.5,7416.1,7379.3,2933.7,2948.7,2983.6,477.2,474.8,483.4,4.4,4.4,4.5
353 | May-2007,10395.2,10401.5,10412,7452.3,7475.4,7452.2,2942.9,2926.1,2959.8,471,462.5,465.3,4.3,4.3,4.3
354 | Jun-2007,10423.9,10423.5,10436.3,7470.2,7464.1,7424.8,2953.7,2959.4,3011.5,466.8,471,459,4.3,4.3,4.2
355 | Jul-2007,10450.8,10445.4,10456.8,7487.6,7483.2,7506.1,2963.2,2962.3,2950.8,465.9,463.5,426.1,4.3,4.2,3.9
356 | Aug-2007,10475.6,10482.6,10406.4,7504.7,7511.4,7437.7,2970.9,2971.2,2968.7,468.4,471.5,446.8,4.3,4.3,4.1
357 | Sep-2007,10500.5,10512.8,10588.8,7522.7,7497.7,7602.7,2977.8,3015.1,2986.1,472.3,461.8,465.6,4.3,4.2,4.2
358 | Oct-2007,10526.4,10503.6,10520.5,7541.9,7561.3,7537.9,2984.4,2942.3,2982.6,474.3,474.1,449.4,4.3,4.3,4.1
359 | Nov-2007,10554.9,10558.2,10535.1,7561.9,7563.2,7574.5,2993,2995,2960.6,473.1,488.4,451.3,4.3,4.4,4.1
360 | Dec-2007,10585.1,10581.9,10710.1,7581,7582.2,7710.1,3004.1,2999.7,3000.1,469.4,476.3,470.8,4.2,4.3,4.2
361 | Jan-2008,10615.1,10618,10524.9,7596.1,7579.4,7618.1,3019,3038.6,2906.8,464.9,467.5,503.3,4.2,4.2,4.6
362 | Feb-2008,10642.6,10647.9,10622.9,7608.4,7633.5,7684.7,3034.3,3014.4,2938.2,462.2,440.8,500.4,4.2,4,4.5
363 | Mar-2008,10667.4,10669.2,10677.4,7622.1,7623.5,7596.2,3045.3,3045.8,3081.2,462,451,479.7,4.2,4.1,4.3
364 | Apr-2008,10689.8,10707.1,10706.2,7640.9,7635.3,7599.3,3048.8,3071.8,3106.9,464.2,476.3,484.1,4.2,4.3,4.3
365 | May-2008,10711.2,10680,10690.3,7665.3,7633.2,7613.6,3045.9,3046.8,3076.7,467.3,475.2,478.3,4.2,4.3,4.3
366 | Jun-2008,10732.4,10732.7,10745,7691.1,7672.8,7631.9,3041.3,3059.9,3113.1,469.8,475.7,462.7,4.2,4.2,4.1
367 | Jul-2008,10751.8,10749.7,10762,7712.3,7746.2,7768.3,3039.6,3003.5,2993.6,470.5,476.7,439.8,4.2,4.2,3.9
368 | Aug-2008,10767.8,10791.6,10710.4,7724.7,7761.3,7684.6,3043.1,3030.3,3025.8,470.9,451.3,429.4,4.2,4,3.9
369 | Sep-2008,10779.6,10776.6,10854.6,7727.7,7720.8,7830.7,3051.9,3055.8,3023.9,473.8,482.2,484.9,4.2,4.3,4.3
370 | Oct-2008,10786.5,10786.5,10807.4,7720,7701.9,7677.2,3066.6,3084.6,3130.2,484.5,482.9,458.7,4.3,4.3,4.1
371 | Nov-2008,10789.4,10778.6,10757.3,7706.1,7703.1,7717.2,3083.3,3075.6,3040.1,504.3,502.8,465.9,4.5,4.5,4.2
372 | Dec-2008,10790.1,10789.2,10915.6,7691.2,7665.4,7790.4,3099,3123.8,3125.2,531.6,516.4,506.5,4.7,4.6,4.4
373 | Jan-2009,10789.7,10790.4,10681,7678.1,7721,7728.3,3111.6,3069.4,2952.7,563.8,556.6,600,5,4.9,5.3
374 | Feb-2009,10787.6,10803.3,10776.7,7666.1,7662.1,7710,3121.5,3141.2,3066.8,596.5,604.3,683.9,5.2,5.3,6
375 | Mar-2009,10783.8,10770,10775.2,7652.1,7618.8,7590.8,3131.7,3151.2,3184.4,625,652.4,693,5.5,5.7,6
376 | Apr-2009,10779.1,10792.8,10792.7,7635.4,7664.9,7629.3,3143.7,3127.9,3163.4,646,628.9,637,5.7,5.5,5.6
377 | May-2009,10775.8,10772.3,10786.8,7617.7,7615.9,7602.8,3158.1,3156.3,3184,657.5,663.8,667.5,5.8,5.8,5.8
378 | Jun-2009,10775.6,10754.3,10770.9,7601.3,7596.7,7558.3,3174.3,3157.7,3212.7,660.7,670.2,654.7,5.8,5.9,5.7
379 | Jul-2009,10779.8,10797.2,10808.8,7588.5,7595,7615.7,3191.4,3202.2,3193.1,658.9,648.7,601.7,5.8,5.7,5.3
380 | Aug-2009,10790.4,10787.3,10707.3,7582,7569.8,7497.2,3208.4,3217.5,3210.1,654.8,653.1,623.5,5.7,5.7,5.5
381 | Sep-2009,10808,10808.7,10882.1,7581.9,7578.1,7689.1,3226.2,3230.6,3193,648.9,647.3,647.2,5.7,5.7,5.6
382 | Oct-2009,10831.4,10818.8,10845.2,7588.1,7580.7,7556.1,3243.3,3238.1,3289.1,641.2,643.9,613.7,5.6,5.6,5.4
383 | Nov-2009,10858,10849.1,10829.2,7598.5,7606.7,7624.6,3259.4,3242.4,3204.6,633.3,637.5,593.4,5.5,5.5,5.2
384 | Dec-2009,10882.7,10888,11010.9,7609.9,7617.4,7739,3272.8,3270.6,3272,627.4,632,619.1,5.5,5.5,5.3
385 | Jan-2010,10903.1,10933.8,10809.9,7622.5,7636.1,7630.2,3280.6,3297.7,3179.7,622.9,607.3,654.1,5.4,5.3,5.7
386 | Feb-2010,10918.2,10918.7,10889.2,7635.4,7621,7666.2,3282.8,3297.7,3222.9,620,610.7,690.5,5.4,5.3,6
387 | Mar-2010,10929.6,10925.1,10928.9,7648.8,7635.1,7607.1,3280.8,3290,3321.8,618.2,626.4,666.6,5.4,5.4,5.7
388 | Apr-2010,10942.2,10935.7,10940.1,7665.6,7676.3,7642.9,3276.6,3259.3,3297.2,615.4,635.9,642.7,5.3,5.5,5.5
389 | May-2010,10959.6,10938.4,10957.4,7686.3,7693.6,7685.5,3273.4,3244.8,3271.9,611.3,602.7,604.6,5.3,5.2,5.2
390 | Jun-2010,10984.4,10991.9,11009.3,7710.6,7711.9,7673.6,3273.8,3280,3335.6,606.8,596.9,580.3,5.2,5.2,5
391 | Jul-2010,11015.8,11016.5,11030.5,7737.5,7710.8,7732.4,3278.3,3305.7,3298.1,602.6,614.6,572,5.2,5.3,4.9
392 | Aug-2010,11051.3,11058.4,10973.8,7765,7775.2,7699.9,3286.3,3283.2,3273.9,599.4,584.6,559.3,5.1,5,4.8
393 | Sep-2010,11086.4,11086,11159.4,7790.9,7814.2,7928.2,3295.5,3271.8,3231.2,597.7,589.6,592.1,5.1,5,5
394 | Oct-2010,11119,11102.7,11129,7816.1,7791.2,7765.3,3302.9,3311.5,3363.7,596.2,619.3,589.8,5.1,5.3,5
395 | Nov-2010,11147.3,11161.7,11144.5,7841,7856.9,7877.1,3306.4,3304.8,3267.4,593.6,599.8,558.2,5.1,5.1,4.8
396 | Dec-2010,11169.1,11171,11295,7861.9,7857.1,7980.7,3307.2,3313.9,3314.3,589.9,571.7,561.5,5,4.9,4.7
397 | Jan-2011,11183.3,11196.2,11063.7,7877,7859.7,7839.3,3306.3,3336.5,3224.3,586.1,589.1,631.1,5,5,5.4
398 | Feb-2011,11189.8,11173.7,11146.2,7885.9,7894.1,7938.4,3303.9,3279.6,3207.8,582.7,585,662.7,4.9,5,5.6
399 | Mar-2011,11190.8,11214.7,11217,7889.3,7930.5,7902.3,3301.5,3284.2,3314.7,581,580.8,619.2,4.9,4.9,5.2
400 | Apr-2011,11190.1,11180,11186.5,7887.5,7881.5,7848.8,3302.6,3298.5,3337.8,582.6,583.6,588.2,4.9,5,5
401 | May-2011,11192.1,11172.4,11196.2,7884.4,7835.2,7830.8,3307.7,3337.1,3365.4,587.4,588.6,589.8,5,5,5
402 | Jun-2011,11199.6,11204.6,11221.3,7883.2,7906.5,7869.8,3316.4,3298.1,3351.4,594.1,580.9,564.2,5,4.9,4.8
403 | Jul-2011,11210.2,11208.5,11227.5,7883.8,7882.6,7906.9,3326.4,3325.8,3320.6,602.2,600.9,562.6,5.1,5.1,4.8
404 | Aug-2011,11222.7,11218.7,11130.6,7887.6,7886,7809.3,3335.1,3332.7,3321.3,610.1,622.4,597,5.2,5.3,5.1
405 | Sep-2011,11234.1,11249.4,11321,7894.4,7899.1,8013.9,3339.6,3350.3,3307.1,615.3,618.6,620.5,5.2,5.2,5.2
406 | Oct-2011,11244,11250.5,11273.9,7903.1,7917,7890.6,3340.8,3333.5,3383.3,617.5,615.7,588.7,5.2,5.2,5
407 | Nov-2011,11252.1,11252.6,11240.3,7912.3,7883.3,7906.9,3339.8,3369.4,3333.4,616.8,619.7,578.1,5.2,5.2,4.9
408 | Dec-2011,11262.1,11233.1,11354.4,7923.5,7918.5,8040.7,3338.7,3314.6,3313.7,614.1,613.9,601.7,5.2,5.2,5
409 | Jan-2012,11275.9,11299.2,11158.7,7936.4,7957.2,7921.6,3339.5,3342,3237.1,611.4,599.2,642,5.1,5,5.4
410 | Feb-2012,11292.5,11266.7,11235.6,7947.5,7946,7986.9,3344.9,3320.6,3248.8,610.4,618,699.1,5.1,5.2,5.9
411 | Mar-2012,11309.5,11330.3,11331.9,7955.2,7964.6,7936.8,3354.3,3365.7,3395.2,610.2,618.4,659.4,5.1,5.2,5.5
412 | Apr-2012,11324.4,11315.6,11328.7,7959,7941.1,7911,3365.4,3374.5,3417.7,610.7,595.3,599,5.1,5,5
413 | May-2012,11336,11360.8,11390,7961.7,7984.3,7983.7,3374.3,3376.5,3406.3,613.2,621.3,620.4,5.1,5.2,5.2
414 | Jun-2012,11344.9,11334.4,11352.5,7967,7957.7,7924,3377.9,3376.7,3428.5,617.8,619.4,598.8,5.2,5.2,5
415 | Jul-2012,11351.9,11341.4,11365.1,7976.4,7961.2,7987.7,3375.5,3380.2,3377.4,623.9,619.5,582.8,5.2,5.2,4.9
416 | Aug-2012,11358.9,11352.6,11260.8,7989.2,7974.4,7895.2,3369.7,3378.3,3365.5,630.7,614.5,590.1,5.3,5.1,5
417 | Sep-2012,11368.2,11384.1,11453.7,8003.4,8021,8134.7,3364.8,3363.1,3319,636.8,658.7,660.5,5.3,5.5,5.5
418 | Oct-2012,11381.6,11385.1,11402,8015.8,8034.8,8005.8,3365.8,3350.4,3396.2,641.3,651.1,623.1,5.3,5.4,5.2
419 | Nov-2012,11397.3,11380.7,11373.9,8023.4,8014.6,8040.2,3373.9,3366.1,3333.7,645.1,629.7,588.7,5.4,5.2,4.9
420 | Dec-2012,11413.6,11395.4,11516.4,8025.4,8006.4,8130.2,3388.2,3388.9,3386.2,649.4,652,637.1,5.4,5.4,5.2
421 | Jan-2013,11428.3,11451.8,11301,8022,8055.7,7998.3,3406.3,3396.1,3302.6,654.7,650,695.7,5.4,5.4,5.8
422 | Feb-2013,11440.6,11460.5,11420.1,8015.8,8006.2,8042.6,3424.8,3454.3,3377.5,661.4,655.1,740,5.5,5.4,6.1
423 | Mar-2013,11449.2,11428.2,11431.5,8008.9,7988.5,7962.1,3440.3,3439.7,3469.5,669.5,681.3,725,5.5,5.6,6
424 | Apr-2013,11453.3,11457.8,11475.4,8003.1,8017.4,7989.5,3450.2,3440.4,3485.9,677.7,678.8,681.9,5.6,5.6,5.6
425 | May-2013,11454.4,11450.6,11485.4,7998.5,7997.4,7999.9,3455.8,3453.2,3485.5,684.1,678,675.8,5.6,5.6,5.6
426 | Jun-2013,11455.2,11463.5,11485.8,7995.7,7991.3,7962.2,3459.5,3472.2,3523.7,688.8,695.9,672.2,5.7,5.7,5.5
427 | Jul-2013,11456.3,11447.6,11473.8,7992.7,7983.9,8011.2,3463.5,3463.7,3462.6,692.3,684,645.9,5.7,5.6,5.3
428 | Aug-2013,11455.7,11448.5,11355.6,7986.4,7990.7,7911.9,3469.3,3457.7,3443.7,695.4,705.8,679.5,5.7,5.8,5.6
429 | Sep-2013,11451.5,11466,11533,7974.5,7998.9,8112.4,3477,3467.1,3420.6,698.9,689.6,692,5.8,5.7,5.7
430 | Oct-2013,11446.1,11461.9,11476.5,7960.3,7960,7930.2,3485.8,3501.9,3546.2,703,707.2,679.1,5.8,5.8,5.6
431 | Nov-2013,11444.8,11443.7,11439.8,7947.9,7952.6,7979.9,3496.9,3491.1,3459.9,707,701.2,656.5,5.8,5.8,5.4
432 | Dec-2013,11449.8,11416.3,11531.2,7941.8,7909,8028.9,3508,3507.3,3502.3,710.1,712.4,693.8,5.8,5.9,5.7
433 | Jan-2014,11461.5,11452.8,11316.8,7944.8,7937.7,7924.9,3516.7,3515.1,3391.9,712.1,720.1,770.8,5.9,5.9,6.4
434 | Feb-2014,11477.8,11478.7,11457.5,7956.8,7959,8056.8,3521,3519.7,3400.6,714.1,713.8,836.2,5.9,5.9,6.8
435 | Mar-2014,11495.9,11522.5,11528.4,7974.6,7983.1,7959.2,3521.3,3539.4,3569.2,717.5,718.3,766.4,5.9,5.9,6.2
436 | Apr-2014,11512.4,11526.2,11547.2,7992.6,8000.4,7974.2,3519.8,3525.8,3573.1,722.8,712.6,713.4,5.9,5.8,5.8
437 | May-2014,11524.1,11505.2,11546.1,8006.4,8013.6,8019.9,3517.7,3491.6,3526.3,730.9,722.2,717,6,5.9,5.8
438 | Jun-2014,11529.8,11522.5,11546.4,8013.3,7998.9,7972.3,3516.4,3523.6,3574.1,741.6,747.6,721.2,6,6.1,5.9
439 | Jul-2014,11531.9,11539.2,11533.9,8014,8026.3,8040,3518,3512.9,3493.9,752.6,765.8,740.6,6.1,6.2,6
440 | Aug-2014,11533.5,11545.3,11565.4,8011,8016,7960.2,3522.5,3529.3,3605.2,761.6,752.6,733.1,6.2,6.1,6
441 | Sep-2014,11537.1,11544.2,11525.8,8006.7,8006,7973.9,3530.3,3538.2,3551.9,767.4,765.4,745.8,6.2,6.2,6.1
442 | Oct-2014,11546,11529.6,11541.7,8005.4,8006.7,7976.7,3540.6,3522.9,3565,770,781.3,750.3,6.3,6.3,6.1
443 | Nov-2014,11561.6,11543.5,11572.3,8009.9,7986.8,8007.6,3551.7,3556.7,3564.7,770.5,772.1,722.6,6.2,6.3,5.9
444 | Dec-2014,11584.3,11591.2,11703.9,8020.8,8027.1,8147.3,3563.5,3564.1,3556.6,769.8,749.5,731.3,6.2,6.1,5.9
445 | Jan-2015,11611.9,11598.3,11456,8036.2,8025.7,7999.9,3575.7,3572.6,3456.1,767,782.8,836.3,6.2,6.3,6.8
446 | Feb-2015,11640.2,11664.9,11712.4,8053.9,8062.5,8146.8,3586.3,3602.5,3565.6,763,764.4,836.6,6.2,6.1,6.7
447 | Mar-2015,11665.8,11679.5,11686.9,8070.4,8092.5,8070.7,3595.4,3587.1,3616.2,759.7,758.6,808.4,6.1,6.1,6.5
448 | Apr-2015,11686.5,11674.5,11697.8,8083.6,8075.6,8050.9,3602.9,3598.9,3646.9,759.3,765.9,764.7,6.1,6.2,6.1
449 | May-2015,11703.3,11702.9,11767.9,8093.5,8083.6,8102.3,3609.8,3619.3,3665.5,761.7,736.5,730.3,6.1,5.9,5.8
450 | Jun-2015,11720.3,11714.1,11738.9,8101.9,8104,8078.2,3618.4,3610,3660.7,765.7,756.7,729.8,6.1,6.1,5.9
451 | Jul-2015,11742,11749.7,11746.5,8113.1,8124.5,8140.6,3628.9,3625.2,3605.9,768,795.3,770.7,6.1,6.3,6.2
452 | Aug-2015,11769.5,11767.5,11687.4,8128,8115.7,8044.2,3641.5,3651.8,3643.3,767.5,769.7,761.1,6.1,6.1,6.1
453 | Sep-2015,11801.4,11774.5,11755.9,8146.5,8133.7,8099.3,3654.9,3640.7,3656.6,762.8,771.2,753.4,6.1,6.1,6
454 | Oct-2015,11833.2,11836.6,11848.7,8165.3,8164.1,8133.1,3667.9,3672.5,3715.5,754.8,746.2,715.1,6,5.9,5.7
455 | Nov-2015,11861.6,11887.6,11917.7,8180.8,8189.6,8210.8,3680.8,3698.1,3706.9,745.4,737.2,689.4,5.9,5.8,5.5
456 | Dec-2015,11883.9,11892.6,12005.5,8189.1,8212.2,8335.7,3694.7,3680.4,3669.7,736.4,720.8,703.8,5.8,5.7,5.5
457 | Jan-2016,11898.2,11889.1,11739.5,8189.4,8177,8140.9,3708.8,3712,3598.6,730.1,761.2,815.1,5.8,6,6.5
458 | Feb-2016,11906.6,11904.8,11951.2,8183.1,8194.2,8277.6,3723.5,3710.6,3673.5,726.5,719.5,787.4,5.8,5.7,6.2
459 | Mar-2016,11912.8,11914,11920.8,8175,8169.9,8147.9,3737.8,3744.1,3772.9,724.5,714.5,761.9,5.7,5.7,6
460 | Apr-2016,11920,11913.9,11940.5,8167.5,8151.2,8128.1,3752.5,3762.7,3812.4,724.1,720.9,719.2,5.7,5.7,5.7
461 | May-2016,11928,11919.8,11971.2,8159.7,8139.4,8149,3768.3,3780.4,3822.2,723.6,722.9,715.7,5.7,5.7,5.6
462 | Jun-2016,11934.4,11933.6,11960.7,8150.8,8190.9,8166.8,3783.5,3742.7,3794,722.7,730.6,704.2,5.7,5.8,5.6
463 | Jul-2016,11938.6,11965.7,11962.3,8143,8149.5,8167,3795.7,3816.2,3795.2,721.7,731.3,708.9,5.7,5.8,5.6
464 | Aug-2016,11942.7,11948.3,11868.9,8137.4,8147.5,8077.4,3805.3,3800.8,3791.5,720.4,717.5,707.8,5.7,5.7,5.6
465 | Sep-2016,11948,11925.3,11908.9,8134.8,8083.2,8048.6,3813.2,3842.1,3860.4,718.8,712.6,696.3,5.7,5.6,5.5
466 | Oct-2016,11955.4,11936.9,11950.7,8136,8129.3,8097.5,3819.4,3807.6,3853.1,719.8,707.3,676.2,5.7,5.6,5.4
467 | Nov-2016,11966.4,11983.1,12015.6,8142.5,8173.5,8196.8,3824,3809.6,3818.8,724.4,730.7,683.8,5.7,5.7,5.4
468 | Dec-2016,11984.4,11998.9,12105.3,8156.2,8189.3,8310.2,3828.2,3809.7,3795.1,730.6,737.8,722.5,5.7,5.8,5.6
469 | Jan-2017,12009.4,12003.6,11840.4,8175.1,8131.1,8073.4,3834.3,3872.5,3767,735.8,724.3,776,5.8,5.7,6.2
470 | Feb-2017,12038,12011.5,12054.9,8195.8,8174.6,8256.2,3842.2,3837,3798.7,737.8,747.2,818.4,5.8,5.9,6.4
471 | Mar-2017,12067.7,12064.5,12072,8217.5,8241.1,8220.2,3850.1,3823.4,3851.9,736.8,751.1,801.4,5.8,5.9,6.2
472 | Apr-2017,12097,12110.7,12139.2,8239.3,8235.4,8213.4,3857.7,3875.3,3925.8,734,730.5,728.8,5.7,5.7,5.7
473 | May-2017,12122.1,12152.6,12205.9,8258.5,8287.4,8297.3,3863.6,3865.2,3908.7,729.2,711.9,703.4,5.7,5.5,5.4
--------------------------------------------------------------------------------