diff --git a/dev-0/out.tsv b/dev-0/out.tsv new file mode 100644 index 0000000..613196a --- /dev/null +++ b/dev-0/out.tsv @@ -0,0 +1,1000 @@ +67053.66600800678 +27459.36108198017 +31858.728295983747 +14261.259439971298 +36258.09550998546 +62654.2987940032 +40657.46272398904 +31858.728295983747 +1063.1577979624271 +31858.728295983747 +23059.99386797659 +67053.66600800678 +5462.525011966005 +14261.259439971298 +45056.82993799262 +27459.36108198017 +53855.56436599791 +75852.40043601207 +31858.728295983747 +27459.36108198017 +31858.728295983747 +23059.99386797659 +-7735.576630042866 +62654.2987940032 +1063.1577979624271 +71453.0332220085 +62654.2987940032 +27459.36108198017 +18660.626653974876 +45056.82993799262 +62654.2987940032 +53855.56436599791 +23059.99386797659 +23059.99386797659 +36258.09550998546 +71453.0332220085 +31858.728295983747 +36258.09550998546 +45056.82993799262 +53855.56436599791 +75852.40043601207 +49456.19715199433 +36258.09550998546 +53855.56436599791 +18660.626653974876 +58254.931579999626 +71453.0332220085 +18660.626653974876 +62654.2987940032 +53855.56436599791 +71453.0332220085 +-3336.209416039288 +75852.40043601207 +49456.19715199433 +14261.259439971298 +-3336.209416039288 +1063.1577979624271 +49456.19715199433 +53855.56436599791 +36258.09550998546 +62654.2987940032 +9861.892225969583 +31858.728295983747 +71453.0332220085 +71453.0332220085 +27459.36108198017 +14261.259439971298 +67053.66600800678 +36258.09550998546 +23059.99386797659 +23059.99386797659 +31858.728295983747 +23059.99386797659 +18660.626653974876 +67053.66600800678 +1063.1577979624271 +67053.66600800678 +53855.56436599791 +23059.99386797659 +14261.259439971298 +36258.09550998546 +9861.892225969583 +58254.931579999626 +18660.626653974876 +40657.46272398904 +49456.19715199433 +71453.0332220085 +27459.36108198017 +45056.82993799262 +27459.36108198017 +23059.99386797659 +53855.56436599791 +40657.46272398904 +67053.66600800678 +-25333.045486053452 +27459.36108198017 +27459.36108198017 +53855.56436599791 +40657.46272398904 +40657.46272398904 +5462.525011966005 +31858.728295983747 +-7735.576630042866 +27459.36108198017 +27459.36108198017 +31858.728295983747 +31858.728295983747 +40657.46272398904 +49456.19715199433 +18660.626653974876 +71453.0332220085 +-3336.209416039288 +53855.56436599791 +62654.2987940032 +18660.626653974876 +45056.82993799262 +-7735.576630042866 +45056.82993799262 +53855.56436599791 +36258.09550998546 +40657.46272398904 +27459.36108198017 +1063.1577979624271 +36258.09550998546 +71453.0332220085 +36258.09550998546 +1063.1577979624271 +40657.46272398904 +31858.728295983747 +53855.56436599791 +18660.626653974876 +5462.525011966005 +14261.259439971298 +58254.931579999626 +-16534.31105804816 +45056.82993799262 +40657.46272398904 +71453.0332220085 +40657.46272398904 +49456.19715199433 +23059.99386797659 +58254.931579999626 +36258.09550998546 +27459.36108198017 +31858.728295983747 +45056.82993799262 +71453.0332220085 +18660.626653974876 +23059.99386797659 +49456.19715199433 +49456.19715199433 +18660.626653974876 +53855.56436599791 +-7735.576630042866 +71453.0332220085 +-16534.31105804816 +71453.0332220085 +27459.36108198017 +45056.82993799262 +58254.931579999626 +23059.99386797659 +67053.66600800678 +14261.259439971298 +5462.525011966005 +9861.892225969583 +5462.525011966005 +18660.626653974876 +45056.82993799262 +31858.728295983747 +75852.40043601207 +75852.40043601207 +71453.0332220085 +18660.626653974876 +18660.626653974876 +75852.40043601207 +31858.728295983747 +71453.0332220085 +75852.40043601207 +71453.0332220085 +75852.40043601207 +53855.56436599791 +45056.82993799262 +36258.09550998546 +1063.1577979624271 +27459.36108198017 +18660.626653974876 +58254.931579999626 +18660.626653974876 +-3336.209416039288 +18660.626653974876 +-16534.31105804816 +62654.2987940032 +40657.46272398904 +71453.0332220085 +23059.99386797659 +53855.56436599791 +23059.99386797659 +14261.259439971298 +31858.728295983747 +40657.46272398904 +75852.40043601207 +75852.40043601207 +-7735.576630042866 +-16534.31105804816 +36258.09550998546 +5462.525011966005 +31858.728295983747 +31858.728295983747 +62654.2987940032 +45056.82993799262 +36258.09550998546 +31858.728295983747 +23059.99386797659 +14261.259439971298 +36258.09550998546 +71453.0332220085 +49456.19715199433 +67053.66600800678 +45056.82993799262 +53855.56436599791 +1063.1577979624271 +58254.931579999626 +31858.728295983747 +-3336.209416039288 +53855.56436599791 +36258.09550998546 +18660.626653974876 +45056.82993799262 +40657.46272398904 +49456.19715199433 +5462.525011966005 +40657.46272398904 +36258.09550998546 +45056.82993799262 +-7735.576630042866 +18660.626653974876 +71453.0332220085 +18660.626653974876 +23059.99386797659 +62654.2987940032 +23059.99386797659 +40657.46272398904 +40657.46272398904 +53855.56436599791 +40657.46272398904 +23059.99386797659 +27459.36108198017 +58254.931579999626 +40657.46272398904 +14261.259439971298 +71453.0332220085 +40657.46272398904 +49456.19715199433 +75852.40043601207 +40657.46272398904 +67053.66600800678 +31858.728295983747 +62654.2987940032 +27459.36108198017 +40657.46272398904 +58254.931579999626 +18660.626653974876 +23059.99386797659 +27459.36108198017 +71453.0332220085 +23059.99386797659 +-3336.209416039288 +75852.40043601207 +18660.626653974876 +36258.09550998546 +9861.892225969583 +40657.46272398904 +36258.09550998546 +40657.46272398904 +71453.0332220085 +27459.36108198017 +27459.36108198017 +49456.19715199433 +31858.728295983747 +31858.728295983747 +67053.66600800678 +62654.2987940032 +36258.09550998546 +14261.259439971298 +75852.40043601207 +-3336.209416039288 +75852.40043601207 +23059.99386797659 +58254.931579999626 +71453.0332220085 +27459.36108198017 +75852.40043601207 +40657.46272398904 +18660.626653974876 +31858.728295983747 +36258.09550998546 +36258.09550998546 +23059.99386797659 +36258.09550998546 +53855.56436599791 +27459.36108198017 +27459.36108198017 +14261.259439971298 +45056.82993799262 +36258.09550998546 +49456.19715199433 +23059.99386797659 +71453.0332220085 +53855.56436599791 +14261.259439971298 +18660.626653974876 +1063.1577979624271 +36258.09550998546 +9861.892225969583 +75852.40043601207 +49456.19715199433 +9861.892225969583 +23059.99386797659 +58254.931579999626 +31858.728295983747 +49456.19715199433 +53855.56436599791 +23059.99386797659 +31858.728295983747 +75852.40043601207 +45056.82993799262 +31858.728295983747 +27459.36108198017 +62654.2987940032 +31858.728295983747 +40657.46272398904 +71453.0332220085 +1063.1577979624271 +45056.82993799262 +9861.892225969583 +53855.56436599791 +45056.82993799262 +36258.09550998546 +27459.36108198017 +71453.0332220085 +45056.82993799262 +71453.0332220085 +45056.82993799262 +62654.2987940032 +9861.892225969583 +53855.56436599791 +9861.892225969583 +23059.99386797659 +71453.0332220085 +49456.19715199433 +58254.931579999626 +23059.99386797659 +36258.09550998546 +58254.931579999626 +62654.2987940032 +49456.19715199433 +18660.626653974876 +23059.99386797659 +49456.19715199433 +45056.82993799262 +75852.40043601207 +53855.56436599791 +14261.259439971298 +58254.931579999626 +-7735.576630042866 +75852.40043601207 +71453.0332220085 +75852.40043601207 +31858.728295983747 +23059.99386797659 +40657.46272398904 +9861.892225969583 +-3336.209416039288 +67053.66600800678 +75852.40043601207 +58254.931579999626 +31858.728295983747 +58254.931579999626 +62654.2987940032 +36258.09550998546 +-3336.209416039288 +45056.82993799262 +45056.82993799262 +62654.2987940032 +18660.626653974876 +49456.19715199433 +18660.626653974876 +14261.259439971298 +36258.09550998546 +14261.259439971298 +53855.56436599791 +36258.09550998546 +49456.19715199433 +36258.09550998546 +5462.525011966005 +58254.931579999626 +36258.09550998546 +62654.2987940032 +-16534.31105804816 +27459.36108198017 +45056.82993799262 +36258.09550998546 +71453.0332220085 +58254.931579999626 +58254.931579999626 +36258.09550998546 +23059.99386797659 +27459.36108198017 +14261.259439971298 +75852.40043601207 +40657.46272398904 +14261.259439971298 +9861.892225969583 +75852.40043601207 +75852.40043601207 +71453.0332220085 +75852.40043601207 +18660.626653974876 +58254.931579999626 +49456.19715199433 +53855.56436599791 +49456.19715199433 +75852.40043601207 +75852.40043601207 +31858.728295983747 +58254.931579999626 +45056.82993799262 +5462.525011966005 +53855.56436599791 +53855.56436599791 +53855.56436599791 +67053.66600800678 +58254.931579999626 +27459.36108198017 +31858.728295983747 +75852.40043601207 +36258.09550998546 +40657.46272398904 +40657.46272398904 +18660.626653974876 +40657.46272398904 +71453.0332220085 +1063.1577979624271 +75852.40043601207 +75852.40043601207 +36258.09550998546 +53855.56436599791 +53855.56436599791 +62654.2987940032 +53855.56436599791 +31858.728295983747 +36258.09550998546 +23059.99386797659 +18660.626653974876 +23059.99386797659 +58254.931579999626 +23059.99386797659 +67053.66600800678 +62654.2987940032 +53855.56436599791 +67053.66600800678 +23059.99386797659 +36258.09550998546 +27459.36108198017 +9861.892225969583 +49456.19715199433 +31858.728295983747 +75852.40043601207 +49456.19715199433 +40657.46272398904 +36258.09550998546 +18660.626653974876 +31858.728295983747 +58254.931579999626 +40657.46272398904 +31858.728295983747 +23059.99386797659 +23059.99386797659 +36258.09550998546 +67053.66600800678 +-3336.209416039288 +49456.19715199433 +18660.626653974876 +31858.728295983747 +18660.626653974876 +31858.728295983747 +62654.2987940032 +49456.19715199433 +23059.99386797659 +27459.36108198017 +49456.19715199433 +58254.931579999626 +75852.40043601207 +45056.82993799262 +27459.36108198017 +49456.19715199433 +71453.0332220085 +45056.82993799262 +40657.46272398904 +18660.626653974876 +71453.0332220085 +31858.728295983747 +36258.09550998546 +27459.36108198017 +58254.931579999626 +62654.2987940032 +53855.56436599791 +9861.892225969583 +71453.0332220085 +58254.931579999626 +-38531.14712806232 +75852.40043601207 +62654.2987940032 +14261.259439971298 +67053.66600800678 +53855.56436599791 +14261.259439971298 +53855.56436599791 +45056.82993799262 +-3336.209416039288 +18660.626653974876 +31858.728295983747 +71453.0332220085 +5462.525011966005 +36258.09550998546 +67053.66600800678 +1063.1577979624271 +62654.2987940032 +67053.66600800678 +58254.931579999626 +45056.82993799262 +31858.728295983747 +75852.40043601207 +27459.36108198017 +71453.0332220085 +9861.892225969583 +75852.40043601207 +27459.36108198017 +1063.1577979624271 +62654.2987940032 +71453.0332220085 +71453.0332220085 +31858.728295983747 +14261.259439971298 +14261.259439971298 +5462.525011966005 +49456.19715199433 +23059.99386797659 +40657.46272398904 +75852.40043601207 +58254.931579999626 +49456.19715199433 +18660.626653974876 +45056.82993799262 +9861.892225969583 +9861.892225969583 +36258.09550998546 +9861.892225969583 +23059.99386797659 +62654.2987940032 +36258.09550998546 +75852.40043601207 +9861.892225969583 +31858.728295983747 +45056.82993799262 +-3336.209416039288 +49456.19715199433 +36258.09550998546 +14261.259439971298 +18660.626653974876 +58254.931579999626 +40657.46272398904 +53855.56436599791 +62654.2987940032 +49456.19715199433 +40657.46272398904 +58254.931579999626 +71453.0332220085 +31858.728295983747 +27459.36108198017 +-7735.576630042866 +58254.931579999626 +1063.1577979624271 +36258.09550998546 +71453.0332220085 +23059.99386797659 +9861.892225969583 +49456.19715199433 +49456.19715199433 +23059.99386797659 +5462.525011966005 +31858.728295983747 +75852.40043601207 +18660.626653974876 +23059.99386797659 +62654.2987940032 +58254.931579999626 +67053.66600800678 +49456.19715199433 +23059.99386797659 +27459.36108198017 +71453.0332220085 +53855.56436599791 +18660.626653974876 +36258.09550998546 +49456.19715199433 +18660.626653974876 +-38531.14712806232 +58254.931579999626 +27459.36108198017 +40657.46272398904 +27459.36108198017 +1063.1577979624271 +58254.931579999626 +49456.19715199433 +36258.09550998546 +31858.728295983747 +36258.09550998546 +58254.931579999626 +40657.46272398904 +62654.2987940032 +27459.36108198017 +1063.1577979624271 +49456.19715199433 +45056.82993799262 +53855.56436599791 +18660.626653974876 +40657.46272398904 +18660.626653974876 +62654.2987940032 +18660.626653974876 +49456.19715199433 +45056.82993799262 +9861.892225969583 +31858.728295983747 +1063.1577979624271 +36258.09550998546 +9861.892225969583 +67053.66600800678 +23059.99386797659 +45056.82993799262 +9861.892225969583 +14261.259439971298 +40657.46272398904 +36258.09550998546 +27459.36108198017 +40657.46272398904 +40657.46272398904 +62654.2987940032 +23059.99386797659 +18660.626653974876 +45056.82993799262 +27459.36108198017 +67053.66600800678 +49456.19715199433 +18660.626653974876 +67053.66600800678 +71453.0332220085 +49456.19715199433 +40657.46272398904 +18660.626653974876 +14261.259439971298 +45056.82993799262 +45056.82993799262 +40657.46272398904 +49456.19715199433 +23059.99386797659 +9861.892225969583 +18660.626653974876 +71453.0332220085 +67053.66600800678 +31858.728295983747 +-7735.576630042866 +45056.82993799262 +18660.626653974876 +9861.892225969583 +9861.892225969583 +71453.0332220085 +36258.09550998546 +53855.56436599791 +-12134.943844044581 +36258.09550998546 +-3336.209416039288 +62654.2987940032 +53855.56436599791 +40657.46272398904 +40657.46272398904 +45056.82993799262 +9861.892225969583 +-3336.209416039288 +27459.36108198017 +9861.892225969583 +14261.259439971298 +23059.99386797659 +45056.82993799262 +27459.36108198017 +-12134.943844044581 +40657.46272398904 +14261.259439971298 +27459.36108198017 +5462.525011966005 +49456.19715199433 +75852.40043601207 +53855.56436599791 +27459.36108198017 +62654.2987940032 +49456.19715199433 +75852.40043601207 +40657.46272398904 +-51729.24877007119 +18660.626653974876 +1063.1577979624271 +18660.626653974876 +53855.56436599791 +9861.892225969583 +49456.19715199433 +9861.892225969583 +67053.66600800678 +9861.892225969583 +53855.56436599791 +53855.56436599791 +-7735.576630042866 +40657.46272398904 +75852.40043601207 +18660.626653974876 +27459.36108198017 +58254.931579999626 +9861.892225969583 +40657.46272398904 +18660.626653974876 +27459.36108198017 +67053.66600800678 +58254.931579999626 +14261.259439971298 +14261.259439971298 +75852.40043601207 +-7735.576630042866 +27459.36108198017 +45056.82993799262 +18660.626653974876 +45056.82993799262 +9861.892225969583 +58254.931579999626 +53855.56436599791 +9861.892225969583 +31858.728295983747 +62654.2987940032 +45056.82993799262 +53855.56436599791 +31858.728295983747 +67053.66600800678 +-25333.045486053452 +62654.2987940032 +71453.0332220085 +31858.728295983747 +75852.40043601207 +53855.56436599791 +9861.892225969583 +-60527.98319807649 +27459.36108198017 +27459.36108198017 +27459.36108198017 +36258.09550998546 +71453.0332220085 +36258.09550998546 +67053.66600800678 +27459.36108198017 +36258.09550998546 +5462.525011966005 +45056.82993799262 +-16534.31105804816 +36258.09550998546 +27459.36108198017 +49456.19715199433 +49456.19715199433 +23059.99386797659 +-16534.31105804816 +31858.728295983747 +45056.82993799262 +27459.36108198017 +23059.99386797659 +53855.56436599791 +-38531.14712806232 +62654.2987940032 +49456.19715199433 +23059.99386797659 +71453.0332220085 +49456.19715199433 +27459.36108198017 +31858.728295983747 +31858.728295983747 +27459.36108198017 +-7735.576630042866 +27459.36108198017 +71453.0332220085 +-16534.31105804816 +27459.36108198017 +67053.66600800678 +75852.40043601207 +27459.36108198017 +5462.525011966005 +14261.259439971298 +71453.0332220085 +23059.99386797659 +27459.36108198017 +9861.892225969583 +49456.19715199433 +45056.82993799262 +45056.82993799262 +71453.0332220085 +5462.525011966005 +62654.2987940032 +71453.0332220085 +14261.259439971298 +36258.09550998546 +27459.36108198017 +36258.09550998546 +18660.626653974876 +62654.2987940032 +75852.40043601207 +53855.56436599791 +27459.36108198017 +-3336.209416039288 +27459.36108198017 +40657.46272398904 +67053.66600800678 +49456.19715199433 +-3336.209416039288 +75852.40043601207 +71453.0332220085 +31858.728295983747 +45056.82993799262 +67053.66600800678 +71453.0332220085 +18660.626653974876 +49456.19715199433 +62654.2987940032 +36258.09550998546 +-3336.209416039288 +62654.2987940032 +23059.99386797659 +40657.46272398904 +71453.0332220085 +23059.99386797659 +9861.892225969583 +53855.56436599791 +31858.728295983747 +67053.66600800678 +23059.99386797659 +31858.728295983747 +23059.99386797659 +40657.46272398904 +31858.728295983747 +62654.2987940032 +58254.931579999626 +40657.46272398904 +27459.36108198017 +53855.56436599791 +27459.36108198017 +45056.82993799262 +40657.46272398904 +31858.728295983747 +-3336.209416039288 +31858.728295983747 +31858.728295983747 +14261.259439971298 +9861.892225969583 +23059.99386797659 +36258.09550998546 +14261.259439971298 +71453.0332220085 +58254.931579999626 +45056.82993799262 +40657.46272398904 +1063.1577979624271 +75852.40043601207 +53855.56436599791 +75852.40043601207 +62654.2987940032 +71453.0332220085 +27459.36108198017 +40657.46272398904 +58254.931579999626 +9861.892225969583 +45056.82993799262 +45056.82993799262 +23059.99386797659 +45056.82993799262 +31858.728295983747 +9861.892225969583 +-12134.943844044581 +40657.46272398904 +18660.626653974876 +23059.99386797659 +36258.09550998546 +-38531.14712806232 +40657.46272398904 +-7735.576630042866 +36258.09550998546 +75852.40043601207 +53855.56436599791 +1063.1577979624271 +75852.40043601207 +-3336.209416039288 +40657.46272398904 +45056.82993799262 +-3336.209416039288 +45056.82993799262 +31858.728295983747 +58254.931579999626 +67053.66600800678 +67053.66600800678 +75852.40043601207 +58254.931579999626 +23059.99386797659 +9861.892225969583 +40657.46272398904 +18660.626653974876 +27459.36108198017 +36258.09550998546 +53855.56436599791 +75852.40043601207 +31858.728295983747 +40657.46272398904 +49456.19715199433 +53855.56436599791 +75852.40043601207 +49456.19715199433 +31858.728295983747 +18660.626653974876 +58254.931579999626 +36258.09550998546 +27459.36108198017 +53855.56436599791 +36258.09550998546 +58254.931579999626 +71453.0332220085 +62654.2987940032 +49456.19715199433 +62654.2987940032 +9861.892225969583 +1063.1577979624271 +40657.46272398904 +71453.0332220085 +31858.728295983747 +67053.66600800678 +53855.56436599791 +-34131.77991406061 +14261.259439971298 +71453.0332220085 +31858.728295983747 +36258.09550998546 +9861.892225969583 +1063.1577979624271 +49456.19715199433 +71453.0332220085 +58254.931579999626 +27459.36108198017 +23059.99386797659 +14261.259439971298 +36258.09550998546 +53855.56436599791 +31858.728295983747 +67053.66600800678 +62654.2987940032 +31858.728295983747 +31858.728295983747 +67053.66600800678 +75852.40043601207 +1063.1577979624271 +71453.0332220085 +62654.2987940032 +31858.728295983747 +40657.46272398904 +62654.2987940032 +40657.46272398904 +18660.626653974876 +75852.40043601207 +40657.46272398904 +27459.36108198017 +1063.1577979624271 +23059.99386797659 +58254.931579999626 +14261.259439971298 +23059.99386797659 +31858.728295983747 +75852.40043601207 +75852.40043601207 +67053.66600800678 +45056.82993799262 +40657.46272398904 +18660.626653974876 +62654.2987940032 +9861.892225969583 +-16534.31105804816 +18660.626653974876 +67053.66600800678 +71453.0332220085 +53855.56436599791 +67053.66600800678 diff --git a/linreg.py b/linreg.py new file mode 100644 index 0000000..0f0b161 --- /dev/null +++ b/linreg.py @@ -0,0 +1,56 @@ +import numpy as np +import pandas as pd +import sys +from sklearn .linear_model import LinearRegression + +TRAIN_FILE_PATH = 'train/train.tsv' + +DEV0_IN = 'dev-0/in.tsv' +DEV0_OUT = 'dev-0/out.tsv' + +TEST_A_IN = 'test-A/in.tsv' +TEST_A_OUT = 'test-A/out.tsv' + + +def read_data_file(filepath, x_index, y_index): + df = pd.read_csv(filepath, sep='\t', header=None, index_col=None) + x = df[x_index].tolist() if x_index is not None else None + y = df[y_index].tolist() if y_index is not None else None + + return {'x': x, 'y': y} + + +def to_numpy_2d(lst): + return np.array(lst).reshape(-1, 1) + + +def get_trained_linreg_model(train_data): + x = to_numpy_2d(train_data.get('x')) + y = to_numpy_2d(train_data.get('y')) + + model = LinearRegression() + model.fit(x, y) + + return model + + +def make_predictions(model, in_file, out_file): + input = read_data_file(in_file, 1, None) + input_x = to_numpy_2d(input.get('x')) + pred_y = model.predict(input_x) + + with open(out_file, 'w') as f: + for pred in pred_y: + f.write(str(pred[0]) + '\n') + + +def main(): + train_data = read_data_file(TRAIN_FILE_PATH, 2, 0) + model = get_trained_linreg_model(train_data) + + make_predictions(model, DEV0_IN, DEV0_OUT) + make_predictions(model, TEST_A_IN, TEST_A_OUT) + + +if __name__ == '__main__': + main() diff --git a/test-A/out.tsv b/test-A/out.tsv new file mode 100644 index 0000000..c26b776 --- /dev/null +++ b/test-A/out.tsv @@ -0,0 +1,1000 @@ +45056.82993799262 +36258.09550998546 +23059.99386797659 +5462.525011966005 +1063.1577979624271 +18660.626653974876 +27459.36108198017 +14261.259439971298 +62654.2987940032 +53855.56436599791 +5462.525011966005 +49456.19715199433 +9861.892225969583 +45056.82993799262 +-25333.045486053452 +1063.1577979624271 +27459.36108198017 +58254.931579999626 +36258.09550998546 +40657.46272398904 +67053.66600800678 +9861.892225969583 +14261.259439971298 +45056.82993799262 +5462.525011966005 +36258.09550998546 +36258.09550998546 +23059.99386797659 +71453.0332220085 +31858.728295983747 +58254.931579999626 +27459.36108198017 +23059.99386797659 +-3336.209416039288 +27459.36108198017 +1063.1577979624271 +62654.2987940032 +45056.82993799262 +71453.0332220085 +36258.09550998546 +27459.36108198017 +53855.56436599791 +45056.82993799262 +36258.09550998546 +58254.931579999626 +49456.19715199433 +40657.46272398904 +9861.892225969583 +31858.728295983747 +36258.09550998546 +58254.931579999626 +71453.0332220085 +27459.36108198017 +49456.19715199433 +14261.259439971298 +27459.36108198017 +71453.0332220085 +45056.82993799262 +71453.0332220085 +75852.40043601207 +36258.09550998546 +67053.66600800678 +45056.82993799262 +18660.626653974876 +23059.99386797659 +67053.66600800678 +14261.259439971298 +9861.892225969583 +40657.46272398904 +75852.40043601207 +67053.66600800678 +75852.40043601207 +36258.09550998546 +53855.56436599791 +45056.82993799262 +23059.99386797659 +23059.99386797659 +23059.99386797659 +67053.66600800678 +5462.525011966005 +18660.626653974876 +45056.82993799262 +58254.931579999626 +58254.931579999626 +40657.46272398904 +58254.931579999626 +71453.0332220085 +23059.99386797659 +14261.259439971298 +62654.2987940032 +36258.09550998546 +53855.56436599791 +71453.0332220085 +9861.892225969583 +31858.728295983747 +58254.931579999626 +27459.36108198017 +23059.99386797659 +58254.931579999626 +23059.99386797659 +75852.40043601207 +27459.36108198017 +27459.36108198017 +36258.09550998546 +45056.82993799262 +71453.0332220085 +67053.66600800678 +27459.36108198017 +18660.626653974876 +5462.525011966005 +36258.09550998546 +14261.259439971298 +23059.99386797659 +27459.36108198017 +23059.99386797659 +67053.66600800678 +5462.525011966005 +75852.40043601207 +-12134.943844044581 +53855.56436599791 +36258.09550998546 +27459.36108198017 +31858.728295983747 +5462.525011966005 +31858.728295983747 +27459.36108198017 +31858.728295983747 +27459.36108198017 +58254.931579999626 +36258.09550998546 +49456.19715199433 +27459.36108198017 +31858.728295983747 +5462.525011966005 +49456.19715199433 +67053.66600800678 +36258.09550998546 +62654.2987940032 +23059.99386797659 +31858.728295983747 +45056.82993799262 +31858.728295983747 +53855.56436599791 +-7735.576630042866 +36258.09550998546 +18660.626653974876 +62654.2987940032 +45056.82993799262 +53855.56436599791 +18660.626653974876 +62654.2987940032 +71453.0332220085 +71453.0332220085 +53855.56436599791 +14261.259439971298 +67053.66600800678 +67053.66600800678 +27459.36108198017 +40657.46272398904 +49456.19715199433 +5462.525011966005 +-7735.576630042866 +45056.82993799262 +18660.626653974876 +49456.19715199433 +49456.19715199433 +31858.728295983747 +36258.09550998546 +62654.2987940032 +62654.2987940032 +71453.0332220085 +-7735.576630042866 +23059.99386797659 +58254.931579999626 +58254.931579999626 +14261.259439971298 +40657.46272398904 +71453.0332220085 +62654.2987940032 +62654.2987940032 +58254.931579999626 +58254.931579999626 +27459.36108198017 +-3336.209416039288 +58254.931579999626 +58254.931579999626 +31858.728295983747 +58254.931579999626 +75852.40043601207 +36258.09550998546 +31858.728295983747 +23059.99386797659 +23059.99386797659 +31858.728295983747 +23059.99386797659 +9861.892225969583 +49456.19715199433 +58254.931579999626 +18660.626653974876 +40657.46272398904 +58254.931579999626 +31858.728295983747 +23059.99386797659 +31858.728295983747 +71453.0332220085 +45056.82993799262 +49456.19715199433 +18660.626653974876 +31858.728295983747 +49456.19715199433 +31858.728295983747 +1063.1577979624271 +31858.728295983747 +-3336.209416039288 +31858.728295983747 +23059.99386797659 +27459.36108198017 +23059.99386797659 +31858.728295983747 +9861.892225969583 +27459.36108198017 +9861.892225969583 +71453.0332220085 +1063.1577979624271 +5462.525011966005 +9861.892225969583 +18660.626653974876 +67053.66600800678 +9861.892225969583 +53855.56436599791 +-16534.31105804816 +-16534.31105804816 +62654.2987940032 +62654.2987940032 +36258.09550998546 +14261.259439971298 +58254.931579999626 +31858.728295983747 +49456.19715199433 +27459.36108198017 +-12134.943844044581 +5462.525011966005 +67053.66600800678 +9861.892225969583 +23059.99386797659 +27459.36108198017 +36258.09550998546 +23059.99386797659 +67053.66600800678 +58254.931579999626 +14261.259439971298 +58254.931579999626 +62654.2987940032 +71453.0332220085 +71453.0332220085 +-3336.209416039288 +36258.09550998546 +31858.728295983747 +75852.40043601207 +53855.56436599791 +31858.728295983747 +67053.66600800678 +71453.0332220085 +9861.892225969583 +71453.0332220085 +31858.728295983747 +27459.36108198017 +75852.40043601207 +5462.525011966005 +58254.931579999626 +31858.728295983747 +31858.728295983747 +49456.19715199433 +67053.66600800678 +14261.259439971298 +18660.626653974876 +14261.259439971298 +27459.36108198017 +75852.40043601207 +18660.626653974876 +53855.56436599791 +5462.525011966005 +53855.56436599791 +49456.19715199433 +31858.728295983747 +58254.931579999626 +67053.66600800678 +75852.40043601207 +18660.626653974876 +53855.56436599791 +45056.82993799262 +49456.19715199433 +49456.19715199433 +31858.728295983747 +53855.56436599791 +27459.36108198017 +53855.56436599791 +27459.36108198017 +36258.09550998546 +58254.931579999626 +67053.66600800678 +53855.56436599791 +62654.2987940032 +62654.2987940032 +62654.2987940032 +49456.19715199433 +49456.19715199433 +1063.1577979624271 +75852.40043601207 +40657.46272398904 +36258.09550998546 +9861.892225969583 +67053.66600800678 +62654.2987940032 +18660.626653974876 +67053.66600800678 +40657.46272398904 +18660.626653974876 +36258.09550998546 +58254.931579999626 +36258.09550998546 +40657.46272398904 +53855.56436599791 +18660.626653974876 +23059.99386797659 +71453.0332220085 +53855.56436599791 +27459.36108198017 +53855.56436599791 +27459.36108198017 +-34131.77991406061 +27459.36108198017 +67053.66600800678 +71453.0332220085 +31858.728295983747 +40657.46272398904 +36258.09550998546 +14261.259439971298 +62654.2987940032 +71453.0332220085 +75852.40043601207 +45056.82993799262 +45056.82993799262 +71453.0332220085 +75852.40043601207 +14261.259439971298 +23059.99386797659 +40657.46272398904 +71453.0332220085 +62654.2987940032 +58254.931579999626 +53855.56436599791 +71453.0332220085 +18660.626653974876 +45056.82993799262 +18660.626653974876 +27459.36108198017 +18660.626653974876 +31858.728295983747 +45056.82993799262 +67053.66600800678 +31858.728295983747 +18660.626653974876 +27459.36108198017 +1063.1577979624271 +36258.09550998546 +62654.2987940032 +36258.09550998546 +45056.82993799262 +67053.66600800678 +53855.56436599791 +75852.40043601207 +49456.19715199433 +36258.09550998546 +40657.46272398904 +36258.09550998546 +71453.0332220085 +75852.40043601207 +18660.626653974876 +31858.728295983747 +75852.40043601207 +36258.09550998546 +53855.56436599791 +27459.36108198017 +27459.36108198017 +36258.09550998546 +40657.46272398904 +18660.626653974876 +9861.892225969583 +18660.626653974876 +9861.892225969583 +36258.09550998546 +40657.46272398904 +18660.626653974876 +53855.56436599791 +36258.09550998546 +1063.1577979624271 +62654.2987940032 +40657.46272398904 +31858.728295983747 +75852.40043601207 +1063.1577979624271 +53855.56436599791 +49456.19715199433 +27459.36108198017 +1063.1577979624271 +53855.56436599791 +14261.259439971298 +27459.36108198017 +58254.931579999626 +62654.2987940032 +36258.09550998546 +58254.931579999626 +53855.56436599791 +58254.931579999626 +49456.19715199433 +18660.626653974876 +71453.0332220085 +9861.892225969583 +36258.09550998546 +53855.56436599791 +45056.82993799262 +75852.40043601207 +-7735.576630042866 +71453.0332220085 +45056.82993799262 +31858.728295983747 +53855.56436599791 +75852.40043601207 +36258.09550998546 +45056.82993799262 +23059.99386797659 +75852.40043601207 +5462.525011966005 +14261.259439971298 +36258.09550998546 +36258.09550998546 +71453.0332220085 +71453.0332220085 +31858.728295983747 +75852.40043601207 +67053.66600800678 +53855.56436599791 +23059.99386797659 +31858.728295983747 +62654.2987940032 +23059.99386797659 +45056.82993799262 +62654.2987940032 +58254.931579999626 +-20933.678272051737 +9861.892225969583 +-34131.77991406061 +23059.99386797659 +36258.09550998546 +71453.0332220085 +9861.892225969583 +53855.56436599791 +27459.36108198017 +-3336.209416039288 +36258.09550998546 +5462.525011966005 +23059.99386797659 +31858.728295983747 +62654.2987940032 +27459.36108198017 +53855.56436599791 +45056.82993799262 +-7735.576630042866 +-38531.14712806232 +31858.728295983747 +1063.1577979624271 +58254.931579999626 +36258.09550998546 +31858.728295983747 +23059.99386797659 +58254.931579999626 +9861.892225969583 +23059.99386797659 +62654.2987940032 +-7735.576630042866 +58254.931579999626 +71453.0332220085 +71453.0332220085 +9861.892225969583 +49456.19715199433 +53855.56436599791 +53855.56436599791 +31858.728295983747 +27459.36108198017 +-3336.209416039288 +-7735.576630042866 +31858.728295983747 +31858.728295983747 +62654.2987940032 +40657.46272398904 +36258.09550998546 +58254.931579999626 +49456.19715199433 +49456.19715199433 +40657.46272398904 +71453.0332220085 +18660.626653974876 +62654.2987940032 +18660.626653974876 +23059.99386797659 +58254.931579999626 +31858.728295983747 +-47329.881556067616 +67053.66600800678 +67053.66600800678 +9861.892225969583 +67053.66600800678 +45056.82993799262 +58254.931579999626 +53855.56436599791 +40657.46272398904 +75852.40043601207 +27459.36108198017 +45056.82993799262 +62654.2987940032 +45056.82993799262 +36258.09550998546 +31858.728295983747 +75852.40043601207 +-3336.209416039288 +5462.525011966005 +-3336.209416039288 +9861.892225969583 +40657.46272398904 +31858.728295983747 +53855.56436599791 +1063.1577979624271 +49456.19715199433 +49456.19715199433 +18660.626653974876 +1063.1577979624271 +75852.40043601207 +53855.56436599791 +58254.931579999626 +53855.56436599791 +67053.66600800678 +31858.728295983747 +75852.40043601207 +58254.931579999626 +40657.46272398904 +27459.36108198017 +31858.728295983747 +67053.66600800678 +31858.728295983747 +36258.09550998546 +36258.09550998546 +36258.09550998546 +62654.2987940032 +40657.46272398904 +71453.0332220085 +49456.19715199433 +45056.82993799262 +67053.66600800678 +36258.09550998546 +-3336.209416039288 +45056.82993799262 +27459.36108198017 +14261.259439971298 +71453.0332220085 +62654.2987940032 +58254.931579999626 +23059.99386797659 +49456.19715199433 +71453.0332220085 +67053.66600800678 +45056.82993799262 +14261.259439971298 +45056.82993799262 +53855.56436599791 +45056.82993799262 +75852.40043601207 +14261.259439971298 +14261.259439971298 +67053.66600800678 +-7735.576630042866 +9861.892225969583 +62654.2987940032 +45056.82993799262 +-25333.045486053452 +58254.931579999626 +40657.46272398904 +45056.82993799262 +75852.40043601207 +-12134.943844044581 +27459.36108198017 +23059.99386797659 +36258.09550998546 +58254.931579999626 +67053.66600800678 +-3336.209416039288 +14261.259439971298 +18660.626653974876 +36258.09550998546 +67053.66600800678 +40657.46272398904 +-3336.209416039288 +27459.36108198017 +23059.99386797659 +49456.19715199433 +23059.99386797659 +18660.626653974876 +23059.99386797659 +58254.931579999626 +-3336.209416039288 +62654.2987940032 +53855.56436599791 +62654.2987940032 +71453.0332220085 +27459.36108198017 +71453.0332220085 +9861.892225969583 +31858.728295983747 +5462.525011966005 +40657.46272398904 +58254.931579999626 +27459.36108198017 +53855.56436599791 +75852.40043601207 +31858.728295983747 +53855.56436599791 +18660.626653974876 +1063.1577979624271 +31858.728295983747 +71453.0332220085 +45056.82993799262 +-7735.576630042866 +67053.66600800678 +36258.09550998546 +62654.2987940032 +53855.56436599791 +49456.19715199433 +40657.46272398904 +71453.0332220085 +40657.46272398904 +71453.0332220085 +9861.892225969583 +62654.2987940032 +31858.728295983747 +27459.36108198017 +18660.626653974876 +27459.36108198017 +49456.19715199433 +45056.82993799262 +9861.892225969583 +62654.2987940032 +9861.892225969583 +62654.2987940032 +49456.19715199433 +58254.931579999626 +67053.66600800678 +1063.1577979624271 +75852.40043601207 +67053.66600800678 +31858.728295983747 +67053.66600800678 +18660.626653974876 +58254.931579999626 +5462.525011966005 +-3336.209416039288 +23059.99386797659 +27459.36108198017 +36258.09550998546 +14261.259439971298 +31858.728295983747 +5462.525011966005 +53855.56436599791 +-3336.209416039288 +1063.1577979624271 +53855.56436599791 +40657.46272398904 +75852.40043601207 +58254.931579999626 +62654.2987940032 +53855.56436599791 +27459.36108198017 +18660.626653974876 +75852.40043601207 +31858.728295983747 +5462.525011966005 +36258.09550998546 +23059.99386797659 +14261.259439971298 +45056.82993799262 +1063.1577979624271 +27459.36108198017 +40657.46272398904 +9861.892225969583 +36258.09550998546 +53855.56436599791 +-7735.576630042866 +9861.892225969583 +18660.626653974876 +36258.09550998546 +67053.66600800678 +49456.19715199433 +23059.99386797659 +75852.40043601207 +27459.36108198017 +-20933.678272051737 +40657.46272398904 +58254.931579999626 +45056.82993799262 +45056.82993799262 +14261.259439971298 +18660.626653974876 +40657.46272398904 +40657.46272398904 +71453.0332220085 +31858.728295983747 +36258.09550998546 +49456.19715199433 +75852.40043601207 +27459.36108198017 +14261.259439971298 +23059.99386797659 +45056.82993799262 +71453.0332220085 +40657.46272398904 +75852.40043601207 +14261.259439971298 +58254.931579999626 +71453.0332220085 +62654.2987940032 +5462.525011966005 +27459.36108198017 +67053.66600800678 +27459.36108198017 +75852.40043601207 +71453.0332220085 +18660.626653974876 +49456.19715199433 +53855.56436599791 +14261.259439971298 +31858.728295983747 +36258.09550998546 +58254.931579999626 +9861.892225969583 +75852.40043601207 +49456.19715199433 +40657.46272398904 +27459.36108198017 +18660.626653974876 +40657.46272398904 +23059.99386797659 +31858.728295983747 +31858.728295983747 +5462.525011966005 +40657.46272398904 +14261.259439971298 +71453.0332220085 +71453.0332220085 +67053.66600800678 +27459.36108198017 +75852.40043601207 +-3336.209416039288 +67053.66600800678 +67053.66600800678 +71453.0332220085 +-69326.71762608364 +49456.19715199433 +75852.40043601207 +14261.259439971298 +58254.931579999626 +36258.09550998546 +71453.0332220085 +36258.09550998546 +18660.626653974876 +-3336.209416039288 +75852.40043601207 +27459.36108198017 +14261.259439971298 +49456.19715199433 +53855.56436599791 +36258.09550998546 +18660.626653974876 +67053.66600800678 +67053.66600800678 +58254.931579999626 +45056.82993799262 +36258.09550998546 +31858.728295983747 +49456.19715199433 +45056.82993799262 +71453.0332220085 +1063.1577979624271 +27459.36108198017 +49456.19715199433 +49456.19715199433 +27459.36108198017 +40657.46272398904 +9861.892225969583 +62654.2987940032 +1063.1577979624271 +58254.931579999626 +14261.259439971298 +71453.0332220085 +18660.626653974876 +31858.728295983747 +62654.2987940032 +-3336.209416039288 +58254.931579999626 +-7735.576630042866 +45056.82993799262 +31858.728295983747 +27459.36108198017 +18660.626653974876 +31858.728295983747 +58254.931579999626 +40657.46272398904 +23059.99386797659 +75852.40043601207 +-12134.943844044581 +49456.19715199433 +49456.19715199433 +9861.892225969583 +14261.259439971298 +58254.931579999626 +18660.626653974876 +18660.626653974876 +71453.0332220085 +18660.626653974876 +49456.19715199433 +18660.626653974876 +18660.626653974876 +36258.09550998546 +1063.1577979624271 +58254.931579999626 +71453.0332220085 +18660.626653974876 +75852.40043601207 +36258.09550998546 +67053.66600800678 +14261.259439971298 +-16534.31105804816 +45056.82993799262 +40657.46272398904 +67053.66600800678 +36258.09550998546 +23059.99386797659 +49456.19715199433 +27459.36108198017 +36258.09550998546 +49456.19715199433 +27459.36108198017 +27459.36108198017 +31858.728295983747 +49456.19715199433 +53855.56436599791 +27459.36108198017 +27459.36108198017 +75852.40043601207 +-3336.209416039288 +36258.09550998546 +53855.56436599791 +71453.0332220085 +62654.2987940032 +27459.36108198017 +23059.99386797659 +18660.626653974876 +36258.09550998546 +36258.09550998546 +5462.525011966005 +40657.46272398904 +45056.82993799262 +58254.931579999626 +45056.82993799262 +71453.0332220085 +31858.728295983747 +36258.09550998546 +31858.728295983747 +1063.1577979624271 +14261.259439971298 +53855.56436599791 +27459.36108198017 +5462.525011966005 +67053.66600800678 +14261.259439971298 +31858.728295983747 +14261.259439971298 +-16534.31105804816 +18660.626653974876 +31858.728295983747 +-3336.209416039288 +18660.626653974876 +75852.40043601207 +36258.09550998546 +45056.82993799262 +31858.728295983747 +75852.40043601207 +14261.259439971298 +62654.2987940032 +27459.36108198017 +18660.626653974876 +27459.36108198017 +36258.09550998546 +40657.46272398904 +71453.0332220085 +71453.0332220085 +9861.892225969583 +67053.66600800678 +49456.19715199433 +36258.09550998546 +71453.0332220085 +40657.46272398904 +14261.259439971298 +5462.525011966005 +36258.09550998546 +53855.56436599791 +40657.46272398904 +36258.09550998546 +49456.19715199433 +-3336.209416039288 +31858.728295983747 +27459.36108198017 +23059.99386797659 +-3336.209416039288 +-29732.41270005703 +14261.259439971298 +49456.19715199433 +58254.931579999626 +18660.626653974876 +45056.82993799262 +71453.0332220085 +36258.09550998546 +31858.728295983747 +58254.931579999626 +-7735.576630042866 +14261.259439971298 +9861.892225969583 +31858.728295983747 +40657.46272398904 +23059.99386797659 +49456.19715199433 +23059.99386797659 +75852.40043601207 +-3336.209416039288 +36258.09550998546 +45056.82993799262 +9861.892225969583 +71453.0332220085 +53855.56436599791 +18660.626653974876 +49456.19715199433 +40657.46272398904 +-3336.209416039288 +23059.99386797659 +75852.40043601207 +62654.2987940032 +1063.1577979624271 +58254.931579999626 +45056.82993799262 +18660.626653974876 +40657.46272398904 +49456.19715199433 +18660.626653974876 +14261.259439971298 +75852.40043601207 +40657.46272398904 +27459.36108198017 +58254.931579999626 +58254.931579999626 +67053.66600800678 +31858.728295983747 +40657.46272398904 +62654.2987940032 +36258.09550998546 +71453.0332220085 +14261.259439971298 +27459.36108198017 +40657.46272398904 +62654.2987940032 +-25333.045486053452 +40657.46272398904 +53855.56436599791 +1063.1577979624271 +53855.56436599791 +18660.626653974876 +23059.99386797659 +53855.56436599791 +14261.259439971298 +23059.99386797659 +75852.40043601207 +27459.36108198017 +36258.09550998546 +45056.82993799262 +58254.931579999626 +62654.2987940032 +27459.36108198017 +75852.40043601207 +23059.99386797659 +62654.2987940032 +62654.2987940032 +62654.2987940032 +1063.1577979624271