add response interceptors for refreshTokens method

This commit is contained in:
Dzmitry_Tamashevich@epam.com
2020-11-23 22:27:36 +03:00
committed by Daniel Hutzel
parent 76cbf7f9ca
commit 938abb6387
53 changed files with 4702 additions and 4513 deletions

13
media-store/app/.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,13 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Chrome",
"type": "chrome",
"request": "launch",
"url": "http://localhost:3000",
"webRoot": "${workspaceRoot}/src"
}
]
}

View File

@@ -9,6 +9,7 @@
"@umijs/hooks": "^1.9.3",
"antd": "^4.8.2",
"axios": "^0.20.0",
"events": "^3.2.0",
"lodash": "^4.17.20",
"moment": "^2.29.1",
"react": "^16.14.0",
@@ -18,9 +19,9 @@
"react-scripts": "^4.0.0"
},
"scripts": {
"start": "react-scripts start",
"start": "react-scripts start --no-cache",
"build": "react-scripts build",
"test": "react-scripts test",
"test": "react-scripts test --no-cache",
"eject": "react-scripts eject"
},
"eslintConfig": {

View File

@@ -1,3 +1,22 @@
@import "~antd/dist/antd.css";
html {
overflow: hidden;
}
#root {
height: 100%;
}
section.ant-layout {
height: 100vh;
overflow: auto;
}
/* Layout
*/
.site-layout .site-layout-background {
background: #fff;
}
.App {
text-align: center;
}
@@ -36,7 +55,3 @@
transform: rotate(360deg);
}
}
.ant-menu.ant-menu-sub.ant-menu-vertical {
border-radius: 6px !important;
}

View File

@@ -2,15 +2,15 @@ import React from "react";
import "antd/dist/antd.css";
import "./App.css";
import { Layout } from "antd";
import { MyRouter } from "./Router";
import { GlobalContextProvider } from "./GlobalContext";
import { MyRouter } from "./components/Router";
import { AppStateContextProvider } from "./contexts/AppStateContext";
const App = () => {
return (
<Layout style={{ height: "100%" }}>
<GlobalContextProvider>
<AppStateContextProvider>
<MyRouter />
</GlobalContextProvider>
</AppStateContextProvider>
</Layout>
);
};

View File

@@ -1,137 +0,0 @@
import React, { useMemo, createContext, useContext, useState } from "react";
import axios from "axios";
import { isEmpty, isArray } from "lodash";
const globalContext = {
error: {},
loading: true,
user: {
ID: undefined,
roles: [],
email: undefined,
token: undefined,
},
locale: undefined,
invoicedItems: [],
notifications: [],
};
const GlobalContext = createContext(globalContext);
const useGlobals = () => useContext(GlobalContext);
const AVAILABLE_LOCALES = ["en", "fr", "de"];
const isValidUser = (user) => {
return (
!isEmpty(user) &&
user.ID &&
user.roles &&
user.email &&
user.token &&
isArray(user.roles)
);
};
const resetAxiosParams = () => {
delete axios.defaults.headers.common["Authorization"];
delete axios.defaults.userEntity;
axios.defaults.tracksEntity = "Tracks";
};
const setAxiosParams = (user) => {
axios.defaults.headers.common["Authorization"] = `Basic ${user.token}`;
axios.defaults.userID = user.ID;
if (user.roles.includes("customer")) {
axios.defaults.userEntity = `Customers/${user.ID}`;
axios.defaults.tracksEntity = "MarkedTracks";
} else {
axios.defaults.userEntity = `Employees/${user.ID}`;
axios.defaults.tracksEntity = "Tracks";
}
};
const useUserData = () => {
const getUserDataFromLS = () => {
let userFromLS;
try {
userFromLS = JSON.parse(localStorage.getItem("user"));
} catch (e) {}
if (isValidUser(userFromLS)) {
setAxiosParams(userFromLS);
return userFromLS;
} else {
localStorage.removeItem("user");
resetAxiosParams();
}
};
const setUserDataToLS = (value) => {
if (isValidUser(value)) {
localStorage.setItem("user", JSON.stringify(value));
setAxiosParams(value);
} else {
localStorage.removeItem("user");
resetAxiosParams();
}
};
const setLocaleToLS = (value) => {
localStorage.setItem("locale", value);
axios.defaults.headers.common["Accept-language"] = value;
};
const getLocaleFromLS = () => {
const localeFromLS = localStorage.getItem("locale");
const selectedLocale =
localeFromLS &&
localeFromLS !== "undefined" &&
AVAILABLE_LOCALES.includes(localeFromLS)
? localeFromLS
: "en";
axios.defaults.headers.common["Accept-language"] = selectedLocale;
return selectedLocale;
};
return { getUserDataFromLS, setUserDataToLS, setLocaleToLS, getLocaleFromLS };
};
const GlobalContextProvider = ({ children }) => {
const [loading, setLoading] = useState(false);
const [error, setError] = useState({});
const [invoicedItems, setInvoicedItems] = useState([]);
const [user, setUser] = useState(null);
const [locale, setLocale] = useState(undefined);
const {
getUserDataFromLS,
setUserDataToLS,
getLocaleFromLS,
setLocaleToLS,
} = useUserData();
const value = useMemo(
() => ({
error: error,
loading: loading,
invoicedItems: invoicedItems,
user: user ? user : getUserDataFromLS(),
locale: locale ? locale : getLocaleFromLS(),
setLoading,
setError,
setInvoicedItems,
setUser: (userParam) => {
setUserDataToLS(userParam);
setUser(userParam);
},
setLocale: (localeParam) => {
setLocaleToLS(localeParam);
setLocale(localeParam);
},
}),
[locale, user, loading, error, invoicedItems]
);
return (
<GlobalContext.Provider value={value}>{children}</GlobalContext.Provider>
);
};
export { GlobalContextProvider, useGlobals };

View File

@@ -0,0 +1,21 @@
import axios from "axios";
import { getUserFromLS, getLocaleFromLS } from "../util/localStorageService";
import {
changeUserDefaults,
changeLocaleDefaults,
} from "./changeAxiosDefaults";
import { API } from "../util/constants";
import { responseErrorInterceptor } from "./responseErrorInterceptor";
const axiosInstance = axios.create({
baseURL: API,
timeout: 1000,
});
const user = getUserFromLS();
const locale = getLocaleFromLS();
changeUserDefaults(user);
changeLocaleDefaults(locale);
axiosInstance.interceptors.response.use(null, responseErrorInterceptor);
export { axiosInstance, changeLocaleDefaults, changeUserDefaults };

View File

@@ -1,15 +1,10 @@
import { isEmpty } from "lodash";
import axios from "axios";
import { axiosInstance } from "./axiosInstance";
// in dev mode using provided api
// in prod mode using proxy
const API =
process.env.NODE_ENV === "development" ? "http://localhost:4004/" : "api/";
const BROWSE_TRACKS_SERVICE = `${API}browse-tracks`;
const INVOICES_SERVICE = `${API}browse-invoices`;
const USER_SERVICE = `${API}users`;
const MANAGE_STORE = `${API}manage-store`;
const BROWSE_TRACKS_SERVICE = "browse-tracks";
const INVOICES_SERVICE = "browse-invoices";
const USER_SERVICE = "users";
const MANAGE_STORE = "manage-store";
const constructGenresQuery = (genreIds) => {
return !isEmpty(genreIds)
@@ -29,26 +24,31 @@ const fetchTacks = ({
}`;
};
return axios.get(`${BROWSE_TRACKS_SERVICE}/${axios.defaults.tracksEntity}`, {
params: {},
paramsSerializer: () => serializeTracksUrl(),
});
return axiosInstance.get(
`${BROWSE_TRACKS_SERVICE}/${axiosInstance.defaults.tracksEntity}`,
{
params: {},
paramsSerializer: () => serializeTracksUrl(),
}
);
};
const countTracks = ({ genreIds = [], substr = "" } = {}) => {
return axios.get(
`${BROWSE_TRACKS_SERVICE}/${axios.defaults.tracksEntity}/$count?$filter=${
const tracksEntity = axiosInstance.defaults.tracksEntity;
return axiosInstance.get(
`${BROWSE_TRACKS_SERVICE}/${tracksEntity}/$count?$filter=${
`contains(name,'${substr}')` + constructGenresQuery(genreIds)
}`
);
};
const fetchGenres = () => {
return axios.get(`${BROWSE_TRACKS_SERVICE}/Genres`);
return axiosInstance.get(`${BROWSE_TRACKS_SERVICE}/Genres`);
};
const invoice = (tracks) => {
return axios.post(
return axiosInstance.post(
`${INVOICES_SERVICE}/invoice`,
{
tracks: tracks.map(({ unitPrice, ID }) => ({
@@ -63,12 +63,14 @@ const invoice = (tracks) => {
};
const fetchPerson = () => {
return axios.get(`${USER_SERVICE}/${axios.defaults.userEntity}`);
return axiosInstance.get(
`${USER_SERVICE}/${axiosInstance.defaults.userEntity}`
);
};
const confirmPerson = (person) => {
return axios.put(
`${USER_SERVICE}/${axios.defaults.userEntity}`,
return axiosInstance.put(
`${USER_SERVICE}/${axiosInstance.defaults.userEntity}`,
{
...person,
},
@@ -79,13 +81,13 @@ const confirmPerson = (person) => {
};
const fetchInvoices = () => {
return axios.get(
return axiosInstance.get(
`${INVOICES_SERVICE}/Invoices?$expand=invoiceItems($expand=track($expand=album($expand=artist)))`
);
};
const cancelInvoice = (ID) => {
return axios.post(
return axiosInstance.post(
`${INVOICES_SERVICE}/cancelInvoice`,
{
ID,
@@ -97,61 +99,71 @@ const cancelInvoice = (ID) => {
};
const fetchAlbumsByName = (substr = "", top) => {
return axios.get(
return axiosInstance.get(
`${BROWSE_TRACKS_SERVICE}/Albums?$filter=${`contains(title,'${substr}')&$top=${top}`}`
);
};
const addTrack = (data) => {
return axios.post(`${MANAGE_STORE}/Tracks`, data, {
headers: { "content-type": "application/json" },
return axiosInstance.post(`${MANAGE_STORE}/Tracks`, data, {
headers: { "content-type": "application/json;IEEE754Compatible=true" },
});
};
const addArtist = (data) => {
return axios.post(`${MANAGE_STORE}/Artists`, data, {
return axiosInstance.post(`${MANAGE_STORE}/Artists`, data, {
headers: { "content-type": "application/json" },
});
};
const addAlbum = (data) => {
return axios.post(`${MANAGE_STORE}/Albums`, data, {
return axiosInstance.post(`${MANAGE_STORE}/Albums`, data, {
headers: { "content-type": "application/json" },
});
};
const fetchArtistsByName = (substr = "", top) => {
return axios.get(
return axiosInstance.get(
`${MANAGE_STORE}/Artists?$filter=${`contains(name,'${substr}')&$top=${top}`}`
);
};
const login = (data) => {
return axios.post(`${USER_SERVICE}/login`, data, {
return axiosInstance.post(`${USER_SERVICE}/login`, data, {
headers: { "content-type": "application/json" },
});
};
const updateTrack = (track) => {
return axios.put(
return axiosInstance.put(
`${MANAGE_STORE}/Tracks/${track.ID}`,
{
...track,
},
{
headers: { "content-type": "application/json" },
headers: { "content-type": "application/json;IEEE754Compatible=true" },
}
);
};
const getTrack = (ID) => {
return axios.get(
`${BROWSE_TRACKS_SERVICE}/${axios.defaults.tracksEntity}/${ID}?$expand=genre,album($expand=artist)`
return axiosInstance.get(
`${BROWSE_TRACKS_SERVICE}/${axiosInstance.defaults.tracksEntity}/${ID}?$expand=genre,album($expand=artist)`
);
};
const deleteTrack = (ID) => {
return axios.delete(`${MANAGE_STORE}/Tracks(${ID})`);
return axiosInstance.delete(`${MANAGE_STORE}/Tracks(${ID})`);
};
const refreshTokens = (refreshToken) => {
return axiosInstance.post(
`${USER_SERVICE}/refreshTokens`,
{ refreshToken },
{
headers: { "content-type": "application/json" },
}
);
};
export {
@@ -172,4 +184,5 @@ export {
updateTrack,
getTrack,
deleteTrack,
refreshTokens,
};

View File

@@ -0,0 +1,27 @@
import { axiosInstance } from "./axiosInstance";
function changeUserDefaults(currentUser) {
if (currentUser) {
axiosInstance.defaults.headers.common[
"Authorization"
] = `Basic ${currentUser.accessToken}`;
axiosInstance.defaults.userID = currentUser.ID;
if (currentUser.roles.includes("customer")) {
axiosInstance.defaults.userEntity = `Customers/${currentUser.ID}`;
axiosInstance.defaults.tracksEntity = "MarkedTracks";
} else {
axiosInstance.defaults.userEntity = `Employees/${currentUser.ID}`;
axiosInstance.defaults.tracksEntity = "Tracks";
}
} else {
axiosInstance.defaults.tracksEntity = "Tracks";
}
}
function changeLocaleDefaults(locale) {
if (locale) {
axiosInstance.defaults.headers.common["Accept-language"] = locale;
}
}
export { changeLocaleDefaults, changeUserDefaults };

View File

@@ -0,0 +1,64 @@
import { emitter } from "../util/EventEmitter";
import { axiosInstance } from "./axiosInstance";
import { refreshTokens } from "./calls";
import { getUserFromLS } from "../util/localStorageService";
let isRefreshing = false;
let subscribers = [];
function responseErrorInterceptor(error) {
const originalRequest = error.config;
if (error.response && error.response.status === 401) {
if (originalRequest.url === "users/login") {
return Promise.reject(error);
}
// if users/refreshTokens request failed
if (isRefreshing && originalRequest.url === "users/refreshTokens") {
subscribers.forEach((request) => request.reject(error));
subscribers = [];
isRefreshing = false;
return Promise.reject(error);
}
// if got a 401 error we sending users/refreshTokens request
if (!isRefreshing) {
isRefreshing = true;
refreshTokens(getUserFromLS().refreshToken)
.then((response) => {
emitter.emit("UPDATE_USER", response.data);
subscribers.forEach((request) =>
request.resolve(response.data.accessToken)
);
})
.catch(() => {
subscribers.forEach((request) => request.reject(error));
})
.finally(() => {
subscribers = [];
isRefreshing = false;
});
return;
}
// holding requests which should be sended after users/refreshTokens complete
// otherwise if users/refreshTokens failed an error will be thrown
return new Promise((resolve, reject) => {
subscribers.push({
resolve: (newAccessToken) => {
originalRequest.headers.Authorization = "Basic " + newAccessToken;
resolve(axiosInstance(originalRequest));
},
reject: (err) => {
reject(err);
},
});
});
}
return Promise.reject(error);
}
export { responseErrorInterceptor };

View File

@@ -1,7 +1,7 @@
import React from "react";
import { Breadcrumb, Spin } from "antd";
import { useLocation } from "react-router-dom";
import { useGlobals } from "./GlobalContext";
import { useAppState } from "../hooks/useAppState";
const names = {
"/": "Browse / Tracks",
@@ -13,7 +13,7 @@ const names = {
const CurrentPageHeader = () => {
const location = useLocation();
const { loading } = useGlobals();
const { loading } = useAppState();
return (
<Breadcrumb

View File

@@ -39,7 +39,6 @@ const Editable = ({ value, onChange, type }) => {
fontWeight: 600,
outline: "none",
border: "none",
borderRadius: 6,
backgroundColor: "white",
padding: "0 2px",
}}

View File

@@ -7,7 +7,10 @@ import {
LoginOutlined,
} from "@ant-design/icons";
import { useHistory, useLocation } from "react-router-dom";
import { useGlobals } from "./GlobalContext";
import { useAppState } from "../hooks/useAppState";
import { setLocaleToLS } from "../util/localStorageService";
import { changeLocaleDefaults } from "../api/axiosInstance";
import { emitter } from "../util/EventEmitter";
import "./Header.css";
const { SubMenu } = Menu;
@@ -19,12 +22,14 @@ const RELOAD_LOCATION_NUMBER = 0;
const Header = () => {
const history = useHistory();
const location = useLocation();
const { user, invoicedItems, setUser, locale, setLocale } = useGlobals();
const { user, invoicedItems, locale, setLocale } = useAppState();
const currentKey = [keys.find((key) => key === location.pathname)];
const haveInvoicedItems = !isEmpty(invoicedItems);
const invoicedItemsLength = invoicedItems.length;
const onChangeLocale = (value) => {
setLocaleToLS(value);
changeLocaleDefaults(value);
setLocale(value);
history.go(RELOAD_LOCATION_NUMBER);
};
@@ -39,6 +44,12 @@ const Header = () => {
</Menu.Item>
));
const onUserLogout = () => {
emitter.emit("UPDATE_USER", undefined);
history.push("/");
};
return (
<div
style={{
@@ -107,10 +118,7 @@ const Header = () => {
{!!user ? (
<Menu.Item
onClick={() => {
setUser(undefined);
history.push("/");
}}
onClick={onUserLogout}
danger
icon={<LogoutOutlined style={{ fontSize: 16 }} />}
></Menu.Item>

View File

@@ -6,16 +6,19 @@ import {
Redirect,
} from "react-router-dom";
import { isEmpty } from "lodash";
import { TracksContainer } from "./pages/tracks/TracksPage";
import { TracksContainer } from "../pages/tracks/TracksPage";
import { CurrentPageHeader } from "./CurrentPageHeader";
import { Header } from "./Header";
import { PersonPage } from "./pages/person/PersonPage";
import { ErrorPage } from "./pages/ErrorPage";
import { Login } from "./pages/login/Login";
import { withRestrictions, withRestrictedSection } from "./withRestrictions";
import { InvoicePage } from "./pages/invoice/InvoicePage";
import { ManageStore } from "./pages/manage-store/ManageStore";
import { MyInvoices } from "./pages/person/MyInvoices";
import { Header } from "../components/Header";
import { PersonPage } from "../pages/person/PersonPage";
import { ErrorPage } from "../pages/ErrorPage";
import { Login } from "../pages/login/Login";
import {
withRestrictions,
withRestrictedSection,
} from "../hocs/withRestrictions";
import { InvoicePage } from "../pages/invoice/InvoicePage";
import { ManageStore } from "../pages/manage-store/ManageStore";
import { MyInvoices } from "../pages/person/MyInvoices";
const needCustomer = ({ user }) => !!user && user.roles.includes("customer");

View File

@@ -0,0 +1,72 @@
import React, { useMemo, createContext, useState, useEffect } from "react";
import {
getUserFromLS,
getLocaleFromLS,
setUserToLS,
} from "../util/localStorageService";
import { changeUserDefaults } from "../api/axiosInstance";
import { emitter } from "../util/EventEmitter";
let counter = 0;
const globalContext = {
error: {},
loading: true,
user: {
ID: undefined,
roles: [],
email: undefined,
accessToken: undefined,
refreshToken: undefined,
},
locale: undefined,
invoicedItems: [],
notifications: [],
};
const AppStateContext = createContext(globalContext);
const AppStateContextProvider = ({ children }) => {
const [invoicedItems, setInvoicedItems] = useState([]);
const [loading, setLoading] = useState(false);
const [error, setError] = useState({});
const [user, setUser] = useState(getUserFromLS());
const [locale, setLocale] = useState(getLocaleFromLS());
useEffect(() => {
const updateUser = (newUser) => {
console.log("USER_UPDATE WAS TRIGGERED", counter++);
changeUserDefaults(newUser);
setUserToLS(newUser);
setUser(newUser);
};
emitter.on("UPDATE_USER", updateUser);
console.log("listener was registered");
return () => {
emitter.removeListener("UPDATE_USER", updateUser);
};
}, []);
const value = useMemo(
() => ({
error: error,
loading: loading,
invoicedItems: invoicedItems,
user: user,
locale: locale,
setLoading,
setError,
setInvoicedItems,
setUser: setUser,
setLocale: setLocale,
}),
[locale, user, loading, error, invoicedItems]
);
return (
<AppStateContext.Provider value={value}>
{children}
</AppStateContext.Provider>
);
};
export { AppStateContextProvider, AppStateContext };

View File

@@ -1,10 +1,10 @@
import React from "react";
import { Redirect } from "react-router-dom";
import { useGlobals } from "./GlobalContext";
import { useAppState } from "../hooks/useAppState";
const withRestrictions = (Component, isUserMeetRestrictions) => {
return (props) => {
const { user, invoicedItems } = useGlobals();
const { user, invoicedItems } = useAppState();
return isUserMeetRestrictions({ user, invoicedItems }) ? (
<Component {...props} />
) : (
@@ -15,7 +15,7 @@ const withRestrictions = (Component, isUserMeetRestrictions) => {
const withRestrictedSection = (Component, isUserMeetRestrictions) => {
return (props) => {
const { user, invoicedItems } = useGlobals();
const { user, invoicedItems } = useAppState();
return (
isUserMeetRestrictions({ user, invoicedItems }) && (
<Component {...props} />

View File

@@ -0,0 +1,22 @@
import { useEffect } from "react";
function useAbortableEffect(effect, dependencies) {
const status = {}; // mutable status object
useEffect(() => {
status.aborted = false;
// pass the mutable object to the effect callback
// store the returned value for cleanup
const cleanUpFn = effect(status);
return () => {
// mutate the object to signal the consumer
// this effect is cleaning up
status.aborted = true;
if (typeof cleanUpFn === "function") {
// run the cleanup function
cleanUpFn();
}
};
}, [...dependencies]);
}
export { useAbortableEffect };

View File

@@ -0,0 +1,6 @@
import { useContext } from "react";
import { AppStateContext } from "../contexts/AppStateContext";
const useAppState = () => useContext(AppStateContext);
export { useAppState };

View File

@@ -0,0 +1,42 @@
import { useHistory } from "react-router-dom";
import { useAppState } from "./useAppState";
import { emitter } from "../util/EventEmitter";
import { message } from "antd";
import { MESSAGE_TIMEOUT } from "../util/constants";
const useErrors = () => {
const history = useHistory();
const { setError } = useAppState();
const handleError = (error) => {
console.error("Error", error);
if (error.response) {
if (error.response.status === 401) {
emitter.emit("UPDATE_USER", undefined);
message.error("You are unauthorized, try login again", MESSAGE_TIMEOUT);
}
const { status, statusText, data } = error.response;
setError({
status,
statusText,
message: data.error ? data.error.message : data,
});
} else {
setError({
status: "",
statusText: "Error",
message: "Something went wrong",
});
}
history.push("/error");
};
return {
handleError,
};
};
export { useErrors };

View File

@@ -1,18 +0,0 @@
@import "~antd/dist/antd.css";
html {
overflow: hidden;
}
#root {
height: 100%;
}
section.ant-layout {
height: 100vh;
overflow: auto;
}
/* Layout
*/
.site-layout .site-layout-background {
background: #fff;
}

View File

@@ -1,6 +1,5 @@
import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
import * as serviceWorker from "./serviceWorker";

View File

@@ -1,15 +1,19 @@
import React from "react";
import React, { useEffect } from "react";
import { useHistory } from "react-router-dom";
import { isEmpty } from "lodash";
import { Result, Button } from "antd";
import { useGlobals } from "../GlobalContext";
import { useAppState } from "../hooks/useAppState";
const ErrorPage = () => {
const { error, setError } = useGlobals();
const { error, setError } = useAppState();
const history = useHistory();
const onGoHome = () => {
useEffect(() => {
setError({});
history.replace("/");
}, []);
const onGoHome = () => {
history.push("/");
};

View File

@@ -1,9 +1,11 @@
import React from "react";
import { Table, Button, message } from "antd";
import { useGlobals } from "../../GlobalContext";
import { useAppState } from "../../hooks/useAppState";
import { useHistory } from "react-router-dom";
import { invoice } from "../../api-service";
import { useErrors } from "../../useErrors";
import { invoice } from "../../api/calls";
import { useErrors } from "../../hooks/useErrors";
import { MESSAGE_TIMEOUT } from "../../util/constants";
import "./InvoicePage.css";
const columns = [
@@ -24,12 +26,11 @@ const columns = [
dataIndex: "unitPrice",
},
];
const MESSAGE_TIMEOUT = 2;
const InvoicePage = () => {
const history = useHistory();
const { handleError } = useErrors();
const { invoicedItems, setInvoicedItems, setLoading } = useGlobals();
const { invoicedItems, setInvoicedItems, setLoading } = useAppState();
const data = invoicedItems.map(({ ID: key, ...otherProps }) => ({
key,
@@ -45,12 +46,12 @@ const InvoicePage = () => {
}))
)
.then(() => {
setLoading(false);
setInvoicedItems([]);
message.success("Invoice successfully completed", MESSAGE_TIMEOUT);
history.push("/person");
})
.catch(handleError);
.catch(handleError)
.finally(() => setLoading(false));
};
const onCancel = () => {
setInvoicedItems([]);
@@ -58,7 +59,7 @@ const InvoicePage = () => {
};
return (
<div style={{ borderRadius: 6, backgroundColor: "white", padding: 10 }}>
<div style={{ backgroundColor: "white", padding: 10 }}>
<Table
bordered={false}
pagination={false}
@@ -73,17 +74,12 @@ const InvoicePage = () => {
padding: 5,
}}
>
<Button
type="primary"
size="large"
style={{ borderRadius: 6 }}
onClick={onBuy}
>
<Button type="primary" size="large" onClick={onBuy}>
Buy
</Button>
<Button
size="large"
style={{ borderRadius: 6, marginLeft: 5 }}
style={{ marginLeft: 5 }}
onClick={onCancel}
danger
>

View File

@@ -1,9 +1,11 @@
import React from "react";
import { Form, Input, Button, Checkbox, message } from "antd";
import { login } from "../../api-service";
import { login } from "../../api/calls";
import { useHistory } from "react-router-dom";
import { useGlobals } from "../../GlobalContext";
import { useErrors } from "../../useErrors";
import { useAppState } from "../../hooks/useAppState";
import { useErrors } from "../../hooks/useErrors";
import { MESSAGE_TIMEOUT } from "../../util/constants";
import { emitter } from "../../util/EventEmitter";
const layout = {
labelCol: {
@@ -19,12 +21,11 @@ const tailLayout = {
span: 8,
},
};
const MESSAGE_TIMEOUT = 2;
const Login = () => {
const [form] = Form.useForm();
const history = useHistory();
const { setLoading, setUser } = useGlobals();
const { setLoading } = useAppState();
const { handleError } = useErrors();
const onFinish = (values) => {
@@ -32,25 +33,19 @@ const Login = () => {
setLoading(true);
login({ email: values.email, password: values.password })
.then((response) => {
const { ID, email, level, token, roles } = response.data;
setUser({
ID,
roles,
email,
level,
token,
});
emitter.emit("UPDATE_USER", response.data);
history.push("/");
})
.catch((error) => {
if (error.response.status === 401) {
console.log(error);
if (error.response && error.response.status === 401) {
form.resetFields();
message.error("Invalid credentials!", MESSAGE_TIMEOUT);
} else {
handleError(error);
}
})
.then(() => setLoading(false));
.finally(() => setLoading(false));
};
const onFinishFailed = (errorInfo) => {
@@ -78,7 +73,7 @@ const Login = () => {
},
]}
>
<Input style={{ borderRadius: 6 }} />
<Input />
</Form.Item>
<Form.Item
@@ -91,7 +86,7 @@ const Login = () => {
},
]}
>
<Input.Password style={{ borderRadius: 6 }} />
<Input.Password style={{}} />
</Form.Item>
<Form.Item {...tailLayout} name="remember" valuePropName="checked">

View File

@@ -1,8 +1,8 @@
import React, { useEffect } from "react";
import { Form, Input, Select } from "antd";
import { useSearch } from "@umijs/hooks";
import { useErrors } from "../../useErrors";
import { fetchArtistsByName } from "../../api-service";
import { useErrors } from "../../hooks/useErrors";
import { fetchArtistsByName } from "../../api/calls";
const REQUIRED = [
{

View File

@@ -1,5 +0,0 @@
.ant-select.ant-select-single.ant-select-show-arrow.ant-select-show-search
> div,
.ant-form-item-control-input-content > input {
border-radius: 6px !important;
}

View File

@@ -3,9 +3,10 @@ import { Form, Radio, Button, message } from "antd";
import { TrackForm } from "./TrackForm";
import { AddArtistForm } from "./AddArtistForm";
import { AddAlbumForm } from "./AddAlbumForm";
import { useErrors } from "../../useErrors";
import { useGlobals } from "../../GlobalContext";
import { addTrack, addArtist, addAlbum } from "../../api-service";
import { useErrors } from "../../hooks/useErrors";
import { useAppState } from "../../hooks/useAppState";
import { addTrack, addArtist, addAlbum } from "../../api/calls";
import { MESSAGE_TIMEOUT } from "../../util/constants";
import "./ManageStore.css";
const FORM_TYPES = {
@@ -14,8 +15,6 @@ const FORM_TYPES = {
album: "album",
playlist: "",
};
const DEFAULT_MEDIA_TYPE_ID = 1;
const MESSAGE_TIMEOUT = 2;
const chooseForm = (type) => {
return (
@@ -28,7 +27,7 @@ const chooseForm = (type) => {
const ManageStore = () => {
const [form] = Form.useForm();
const { handleError } = useErrors();
const { setLoading } = useGlobals();
const { setLoading } = useAppState();
const [formType, setFormType] = useState("track");
useEffect(() => {
@@ -53,8 +52,8 @@ const ManageStore = () => {
name: data.name,
composer: data.composer,
album: { ID: data.albumID },
mediaType: { ID: DEFAULT_MEDIA_TYPE_ID },
genre: { ID: data.genreID },
unitPrice: data.unitPrice.toString(),
});
break;
case FORM_TYPES.artist:
@@ -68,11 +67,11 @@ const ManageStore = () => {
promise
.then(() => {
setLoading(false);
message.success("Entity successfully created", MESSAGE_TIMEOUT);
form.resetFields();
})
.catch(handleError);
.catch(handleError)
.finally(() => setLoading(false));
};
return (
@@ -95,13 +94,9 @@ const ManageStore = () => {
>
<Form.Item label="Entity" name="type">
<Radio.Group onChange={onChangeForm}>
<Radio.Button value="track" style={{ borderRadius: "6px 0 0 6px" }}>
Track
</Radio.Button>
<Radio.Button value="track">Track</Radio.Button>
<Radio.Button value="album">Album</Radio.Button>
<Radio.Button value="artist" style={{ borderRadius: "0 6px 6px 0" }}>
Artist
</Radio.Button>
<Radio.Button value="artist">Artist</Radio.Button>
</Radio.Group>
</Form.Item>
{formElement}
@@ -111,7 +106,6 @@ const ManageStore = () => {
span: 14,
offset: 4,
}}
style={{ borderRadius: 6 }}
>
<Button onClick={() => form.submit()}>Create</Button>
</Form.Item>

View File

@@ -1,10 +1,10 @@
import React, { useEffect, useState } from "react";
import { Form, Input, Select } from "antd";
import { Form, Input, Select, InputNumber } from "antd";
import { head } from "lodash";
import { useSearch } from "@umijs/hooks";
import { useGlobals } from "../../GlobalContext";
import { fetchAlbumsByName, fetchGenres } from "../../api-service";
import { useErrors } from "../../useErrors";
import { useAppState } from "../../hooks/useAppState";
import { fetchAlbumsByName, fetchGenres } from "../../api/calls";
import { useErrors } from "../../hooks/useErrors";
const ALBUMS_LIMIT = 10;
const REQUIRED = [
@@ -13,6 +13,10 @@ const REQUIRED = [
message: "This filed is required!",
},
];
const PRICE_INPUT_RULE = {
pattern: /^(?:\d*\.\d\d)$/,
message: "Price should have precision 2 and dot separator!",
};
const getAlbums = function (value) {
return fetchAlbumsByName(value, ALBUMS_LIMIT)
@@ -28,17 +32,15 @@ const TrackForm = ({ initialAlbumTitle }) => {
onChange: onChangeAlbumInput,
cancel: onAlbumCancel,
} = useSearch(getAlbums.bind({ handleError }));
const { setLoading } = useGlobals();
const { setLoading } = useAppState();
const [genres, setGenres] = useState([]);
useEffect(() => {
setLoading(true);
Promise.all([fetchGenres(), onChangeAlbumInput(initialAlbumTitle)])
.then((responses) => {
setGenres(head(responses).data.value);
setLoading(false);
})
.catch(handleError);
.then((responses) => setGenres(head(responses).data.value))
.catch(handleError)
.finally(() => setLoading(false));
}, []);
return (
@@ -76,6 +78,18 @@ const TrackForm = ({ initialAlbumTitle }) => {
))}
</Select>
</Form.Item>
<Form.Item
label="Unit price"
name="unitPrice"
precision={2}
rules={REQUIRED}
>
<InputNumber
precision={2}
decimalSeparator="."
parser={(value) => value.replace(/\$\s?|(,*)/g, "")}
/>
</Form.Item>
</div>
);
};

View File

@@ -1,12 +1,12 @@
import React, { useState, useEffect, useMemo, useCallback } from "react";
import { Button, message, Divider, Tag, Collapse, Table, Spin } from "antd";
import moment from "moment";
import { useErrors } from "../../useErrors";
import { useGlobals } from "../../GlobalContext";
import { cancelInvoice, fetchInvoices } from "../../api-service";
import { useErrors } from "../../hooks/useErrors";
import { useAppState } from "../../hooks/useAppState";
import { cancelInvoice, fetchInvoices } from "../../api/calls";
import { MESSAGE_TIMEOUT } from "../../util/constants";
const { Panel } = Collapse;
const MESSAGE_TIMEOUT = 2;
const INVOICE_STATUS = {
2: {
tagTitle: "Shipped",
@@ -64,7 +64,7 @@ const chooseStatus = (utcNowTimestamp, invoiceDate, statusFromDb) => {
};
const ExtraHeader = ({ ID, invoiceDate, status: initialStatus }) => {
const { loading, setLoading } = useGlobals();
const { loading, setLoading } = useAppState();
const { handleError } = useErrors();
const [loadingHeaderId, setLoadingHeaderId] = useState();
const [status, setStatus] = useState(initialStatus);
@@ -83,11 +83,11 @@ const ExtraHeader = ({ ID, invoiceDate, status: initialStatus }) => {
cancelInvoice(ID)
.then(() => {
message.success("Invoice successfully cancelled", MESSAGE_TIMEOUT);
setLoading(false);
setLoadingHeaderId(undefined);
setStatus(CANCELLED_STATUS);
})
.catch(handleError);
.catch(handleError)
.finally(() => setLoading(false));
};
return (
@@ -108,20 +108,15 @@ const ExtraHeader = ({ ID, invoiceDate, status: initialStatus }) => {
const MyInvoices = () => {
const { handleError } = useErrors();
const { setLoading } = useGlobals();
const { setLoading } = useAppState();
const [invoices, setInvoices] = useState([]);
useEffect(() => {
setLoading(true);
fetchInvoices()
.then((response) => {
const {
data: { value },
} = response;
setInvoices(value);
setLoading(false);
})
.catch(handleError);
.then(({ data: { value } }) => setInvoices(value))
.catch(handleError)
.finally(() => setLoading(false));
}, []);
const genExtra = useCallback(
@@ -183,9 +178,7 @@ const MyInvoices = () => {
{invoiceElements && (
<>
<Divider orientation="left">My invoices</Divider>
<Collapse style={{ borderRadius: 6 }} expandIconPosition="left">
{invoiceElements}
</Collapse>
<Collapse expandIconPosition="left">{invoiceElements}</Collapse>
</>
)}
</div>

View File

@@ -1,12 +1,13 @@
import React, { useState, useEffect, useMemo } from "react";
import React, { useState, useMemo } from "react";
import { Card, Button, message } from "antd";
import { omit } from "lodash";
import { fetchPerson, confirmPerson } from "../../api-service";
import { useErrors } from "../../useErrors";
import { useGlobals } from "../../GlobalContext";
import { Editable } from "../../Editable";
import { fetchPerson, confirmPerson } from "../../api/calls";
import { useErrors } from "../../hooks/useErrors";
import { useAppState } from "../../hooks/useAppState";
import { Editable } from "../../components/Editable";
import { MESSAGE_TIMEOUT } from "../../util/constants";
import { useAbortableEffect } from "../../hooks/useAbortableEffect";
const MESSAGE_TIMEOUT = 2;
const PERSON_PROP = {
address: "Address ",
city: "City ",
@@ -22,7 +23,7 @@ const PERSON_PROP = {
};
const PersonPage = ({ myInvoicesSection }) => {
const { setLoading } = useGlobals();
const { setLoading } = useAppState();
const { handleError } = useErrors();
const [initialPerson, setInitialPerson] = useState({});
const [person, setPerson] = useState({
@@ -39,30 +40,31 @@ const PersonPage = ({ myInvoicesSection }) => {
company: "",
});
useEffect(() => {
useAbortableEffect((status) => {
setLoading(true);
fetchPerson()
.then((response) => {
let { data: personData } = response;
.then(({ data: personData }) => {
personData = omit(personData, "@odata.context", "ID");
console.log("personData", personData);
setInitialPerson(personData);
setPerson(personData);
setLoading(false);
if (!status.aborted) {
setInitialPerson(personData);
setPerson(personData);
}
})
.catch(handleError);
.catch(handleError)
.finally(() => setLoading(false));
}, []);
const onConfirmChanges = () => {
setLoading(true);
confirmPerson(person)
.then(() => {
setLoading(false);
setInitialPerson(person);
message.success("Person successfully updated", MESSAGE_TIMEOUT);
})
.catch(handleError);
.catch(handleError)
.finally(() => setLoading(false));
};
const isPersonChanged = useMemo(() => {
const keysOne = Object.keys(initialPerson);
@@ -100,10 +102,7 @@ const PersonPage = ({ myInvoicesSection }) => {
return (
<>
<Card
style={{ borderRadius: 6 }}
title={`${person.lastName} ${person.firstName}`}
>
<Card title={`${person.lastName} ${person.firstName}`}>
{personProperties}
<div>
Email: <span style={{ fontWeight: 600 }}>{person.email}</span>
@@ -111,7 +110,7 @@ const PersonPage = ({ myInvoicesSection }) => {
{isPersonChanged && (
<Button
type="primary"
style={{ margin: 10, borderRadius: 6 }}
style={{ margin: 10 }}
onClick={onConfirmChanges}
>
Confirm changes

View File

@@ -1,10 +1,9 @@
import React, { useState } from "react";
import { Modal, message } from "antd";
import { DeleteOutlined } from "@ant-design/icons";
import { deleteTrack } from "../../api-service";
import { useErrors } from "../../useErrors";
const MESSAGE_TIMEOUT = 2;
import { deleteTrack } from "../../api/calls";
import { useErrors } from "../../hooks/useErrors";
import { MESSAGE_TIMEOUT } from "../../util/constants";
const DeleteAction = ({ ID, onDeleteTrack }) => {
const [modalVisible, setModalVisible] = useState(false);

View File

@@ -1,13 +1,20 @@
import React from "react";
import { Button, Modal, Form, message } from "antd";
import { EditOutlined, LoadingOutlined } from "@ant-design/icons";
import { useErrors } from "../../useErrors";
import { useErrors } from "../../hooks/useErrors";
import { TrackForm } from "../manage-store/TrackForm";
import { updateTrack, getTrack } from "../../api-service";
import { updateTrack, getTrack } from "../../api/calls";
import { MESSAGE_TIMEOUT } from "../../util/constants";
const MESSAGE_TIMEOUT = 2;
const EditAction = ({ ID, name, composer, genre, album, afterTrackUpdate }) => {
const EditAction = ({
ID,
name,
composer,
genre,
unitPrice,
album,
afterTrackUpdate,
}) => {
const [visible, setVisible] = React.useState(false);
const [confirmLoading, setConfirmLoading] = React.useState(false);
const [updateLoading, setUpdateLoading] = React.useState(false);
@@ -26,6 +33,7 @@ const EditAction = ({ ID, name, composer, genre, album, afterTrackUpdate }) => {
composer: value.composer,
album: { ID: value.albumID },
genre: { ID: value.genreID },
unitPrice: value.unitPrice.toString(),
})
.then(() => {
message.success("Track successfully updated!", MESSAGE_TIMEOUT);
@@ -99,6 +107,7 @@ const EditAction = ({ ID, name, composer, genre, album, afterTrackUpdate }) => {
composer: composer,
genreID: genre.ID,
albumID: album.ID,
unitPrice: unitPrice,
}}
>
<TrackForm initialAlbumTitle={album.title} />

View File

@@ -1,16 +1,15 @@
import React, { useState, useRef } from "react";
import { Card, Button } from "antd";
import { PlusOutlined, MinusOutlined } from "@ant-design/icons";
import { useGlobals } from "../../GlobalContext";
import { withRestrictedSection } from "../../withRestrictions";
import { useAppState } from "../../hooks/useAppState";
import { withRestrictedSection } from "../../hocs/withRestrictions";
import { EditAction } from "./EditAction";
import { DeleteAction } from "./DeleteAction";
import "./Track.css";
const RestrictedButton = withRestrictedSection(
Button,
({ user }) => !!user && user.roles.includes("customer")
);
const RestrictedButton = withRestrictedSection(Button, ({ user }) => {
return !!user && user.roles.includes("customer");
});
const RestrictedEditAction = withRestrictedSection(
EditAction,
@@ -28,7 +27,7 @@ const Track = ({
onDeleteTrack,
}) => {
const trackElement = useRef();
const { setInvoicedItems, invoicedItems } = useGlobals();
const { setInvoicedItems, invoicedItems } = useAppState();
const [isInvoiced, setIsInvoiced] = useState(isInvoicedProp);
const [track, setTrack] = useState(initialTrack);
@@ -70,10 +69,10 @@ const Track = ({
composer={track.composer}
album={track.album}
genre={track.genre}
unitPrice={track.unitPrice}
afterTrackUpdate={(value) => setTrack(value)}
/>,
]}
style={{ borderRadius: 6 }}
title={track.name}
bordered={false}
>

View File

@@ -1,15 +1,4 @@
div.ant-select.ant-select-multiple.ant-select-show-search > div,
div.ant-select-dropdown.ant-select-dropdown-placement-bottomLeft {
border-radius: 6px;
}
.ant-select > div.ant-select-selector {
padding: 5px;
min-width: 300px;
}
.ant-pagination-prev > .ant-pagination-item-link,
.ant-pagination-next > .ant-pagination-item-link,
.ant-pagination-item {
border-radius: 6px;
}

View File

@@ -1,11 +1,14 @@
import React, { useEffect, useState } from "react";
import React, { useState } from "react";
import { debounce } from "lodash";
import { Input, Col, Row, Select, Pagination } from "antd";
import { Track } from "./Track";
import "./TracksPage.css";
import { useGlobals } from "../../GlobalContext";
import { useErrors } from "../../useErrors";
import { fetchTacks, countTracks, fetchGenres } from "../../api-service";
import { useAppState } from "../../hooks/useAppState";
import { useErrors } from "../../hooks/useErrors";
import { fetchTacks, countTracks, fetchGenres } from "../../api/calls";
import { useAbortableEffect } from "../../hooks/useAbortableEffect";
let counter = 0;
const { Search } = Input;
const { Option } = Select;
@@ -24,7 +27,7 @@ const renderGenres = (genres) =>
));
const TracksContainer = () => {
const { setLoading, invoicedItems } = useGlobals();
const { setLoading, invoicedItems } = useAppState();
const { handleError } = useErrors();
const [state, setState] = useState({
tracks: [],
@@ -40,16 +43,17 @@ const TracksContainer = () => {
},
});
useEffect(() => {
useAbortableEffect((status) => {
setLoading(true);
const countTracksReq = countTracks();
const getTracksRequest = fetchTacks();
const getGenresReq = fetchGenres();
console.log("calling requests", counter++);
Promise.all([countTracksReq, getTracksRequest, getGenresReq])
.then((responses) => {
const [
.then(
([
{ data: totalItems },
{
data: { value: tracks },
@@ -57,16 +61,19 @@ const TracksContainer = () => {
{
data: { value: genres },
},
] = responses;
setState({
...state,
tracks,
genres,
pagination: { ...state.pagination, totalItems },
});
setLoading(false);
})
.catch(handleError);
]) => {
if (!status.aborted) {
setState({
...state,
tracks,
genres,
pagination: { ...state.pagination, totalItems },
});
}
}
)
.catch(handleError)
.finally(() => setLoading(false));
}, []);
const onSearch = debounce(
@@ -85,21 +92,15 @@ const TracksContainer = () => {
genreIds: options.genreIds,
}),
])
.then((responses) => {
const [
{
data: { value: tracks },
},
{ data: totalItems },
] = responses;
.then(([{ data: { value: tracks } }, { data: totalItems }]) =>
setState({
...state,
tracks,
pagination: { ...state.pagination, totalItems },
});
setLoading(false);
})
.catch(handleError);
})
)
.catch(handleError)
.finally(() => setLoading(false));
},
DEBOUNCE_TIMER,
DEBOUNCE_OPTIONS
@@ -132,15 +133,15 @@ const TracksContainer = () => {
$skip: (pageNumber - 1) * state.pagination.pageSize,
};
fetchTacks(options)
.then((response) => {
.then((response) =>
setState({
...state,
tracks: response.data.value,
pagination: { ...state.pagination, currentPage: pageNumber },
});
setLoading(false);
})
.catch(handleError);
})
)
.catch(handleError)
.finally(() => setLoading(false));
};
const deleteTrack = (ID) => {
setState({

View File

@@ -1,13 +0,0 @@
const reducersFactory = (initialState, handlers) => {
return (state = initialState, action) => {
const handler = handlers[action.type];
if (handler) {
return handler(state, action);
}
return state;
};
};
export { reducersFactory };

View File

@@ -1,47 +0,0 @@
import { useHistory } from "react-router-dom";
import { useGlobals } from "./GlobalContext";
import { message } from "antd";
const MESSAGE_TIMEOUT = 2;
const useErrors = () => {
const history = useHistory();
const { setError, setUser, setLoading } = useGlobals();
const handleError = (error) => {
console.error("Error", error);
console.log("error", error);
if (error.response) {
if (error.response.status === 401 || error.response.status === 403) {
setUser(undefined);
setLoading(false);
// message.error("You are unauthorized, try login again", MESSAGE_TIMEOUT);
// history.push("/login");
// return;
}
setError({
status: error.response.status,
statusText: error.response.statusText,
message: error.response.data.error
? error.response.data.error.message
: error.response.data,
});
} else {
setError({
status: "",
statusText: "Network error",
message: "Please, check your connection",
});
}
history.push("/error");
};
return {
handleError,
};
};
export { useErrors };

View File

@@ -0,0 +1,5 @@
import EventEmitter from "events";
const emitter = new EventEmitter();
export { emitter };

View File

@@ -0,0 +1,8 @@
export const AVAILABLE_LOCALES = ["en", "fr", "de"];
export const MESSAGE_TIMEOUT = 2;
// in dev mode using provided api
// in prod mode using proxy
export const API =
process.env.NODE_ENV === "development" ? "http://localhost:4004/" : "api/";

View File

@@ -0,0 +1,35 @@
import { isValidUser } from "./validateUser";
import { AVAILABLE_LOCALES } from "./constants";
const setUserToLS = (user) => {
if (user) {
localStorage.setItem("user", JSON.stringify(user));
} else {
localStorage.removeItem("user");
}
};
const getUserFromLS = () => {
let userFromLS;
try {
userFromLS = JSON.parse(localStorage.getItem("user"));
if (isValidUser(userFromLS)) {
return userFromLS;
}
} catch (e) {}
};
const getLocaleFromLS = () => {
const localeFromLS = localStorage.getItem("locale");
return localeFromLS &&
localeFromLS !== "undefined" &&
AVAILABLE_LOCALES.includes(localeFromLS)
? localeFromLS
: "en";
};
const setLocaleToLS = (locale) => {
localStorage.setItem("locale", locale);
};
export { setLocaleToLS, getLocaleFromLS, getUserFromLS, setUserToLS };

View File

@@ -0,0 +1,20 @@
import { isArray, isEmpty, isString, isNumber } from "lodash";
const CUSTOMER_ROLE = "customer";
const EMPLOYEE_ROLE = "employee";
const isValidUser = (user) => {
return (
!isEmpty(user) &&
isNumber(user.ID) &&
isArray(user.roles) &&
!!user.roles.some(
(role) => role === CUSTOMER_ROLE || role === EMPLOYEE_ROLE
) &&
isString(user.email) &&
isString(user.accessToken) &&
isString(user.refreshToken)
);
};
export { isValidUser };

View File

@@ -1,60 +1,60 @@
ID,lastName,firstName,city,state,address,country,postalCode,phone,fax,email,password,company,supportRep_ID
1,Gonçalves,Luís,São José dos Campos,SP,"Av. Brigadeiro Faria Lima, 2170",Brazil,12227-000,+55 (12) 3923-5555,+55 (12) 3923-5566,luisg@embraer.com.br,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,Embraer - Empresa Brasileira de Aeronáutica S.A.,3
2,Köhler,Leonie,Stuttgart,,Theodor-Heuss-Straße 34,Germany,70174,+49 0711 2842222,,leonekohler@surfeu.de,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,5
3,Tremblay,François,Montréal,QC,1498 rue Bélanger,Canada,H2G 1A7,+1 (514) 721-4711,,ftremblay@gmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,3
4,Hansen,Bjørn,Oslo,,Ullevålsveien 14,Norway,0171,+47 22 44 22 22,,bjorn.hansen@yahoo.no,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,4
5,Wichterlová,František,Prague,,Klanova 9/506,Czech Republic,14700,+420 2 4172 5555,+420 2 4172 5555,frantisekw@jetbrains.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,JetBrains s.r.o.,4
6,Holý,Helena,Prague,,Rilská 3174/6,Czech Republic,14300,+420 2 4177 0449,,hholy@gmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,5
7,Gruber,Astrid,Vienne,,"Rotenturmstraße 4, 1010 Innere Stadt",Austria,1010,+43 01 5134505,,astrid.gruber@apple.at,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,5
8,Peeters,Daan,Brussels,,Grétrystraat 63,Belgium,1000,+32 02 219 03 03,,daan_peeters@apple.be,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,4
9,Nielsen,Kara,Copenhagen,,Sønder Boulevard 51,Denmark,1720,+453 3331 9991,,kara.nielsen@jubii.dk,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,4
10,Martins,Eduardo,São Paulo,SP,"Rua Dr. Falcão Filho, 155",Brazil,01007-010,+55 (11) 3033-5446,+55 (11) 3033-4564,eduardo@woodstock.com.br,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,Woodstock Discos,4
11,Rocha,Alexandre,São Paulo,SP,"Av. Paulista, 2022",Brazil,01310-200,+55 (11) 3055-3278,+55 (11) 3055-8131,alero@uol.com.br,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,Banco do Brasil S.A.,5
12,Almeida,Roberto,Rio de Janeiro,RJ,"Praça Pio X, 119",Brazil,20040-020,+55 (21) 2271-7000,+55 (21) 2271-7070,roberto.almeida@riotur.gov.br,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,Riotur,3
13,Ramos,Fernanda,Brasília,DF,Qe 7 Bloco G,Brazil,71020-677,+55 (61) 3363-5547,+55 (61) 3363-7855,fernadaramos4@uol.com.br,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,4
14,Philips,Mark,Edmonton,AB,8210 111 ST NW,Canada,T6G 2C7,+1 (780) 434-4554,+1 (780) 434-5565,mphilips12@shaw.ca,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,Telus,5
15,Peterson,Jennifer,Vancouver,BC,700 W Pender Street,Canada,V6C 1G8,+1 (604) 688-2255,+1 (604) 688-8756,jenniferp@rogers.ca,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,Rogers Canada,3
16,Harris,Frank,Mountain View,CA,1600 Amphitheatre Parkway,USA,94043-1351,+1 (650) 253-0000,+1 (650) 253-0000,fharris@google.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,Google Inc.,4
17,Smith,Jack,Redmond,WA,1 Microsoft Way,USA,98052-8300,+1 (425) 882-8080,+1 (425) 882-8081,jacksmith@microsoft.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,Microsoft Corporation,5
18,Brooks,Michelle,New York,NY,627 Broadway,USA,10012-2612,+1 (212) 221-3546,+1 (212) 221-4679,michelleb@aol.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,3
19,Goyer,Tim,Cupertino,CA,1 Infinite Loop,USA,95014,+1 (408) 996-1010,+1 (408) 996-1011,tgoyer@apple.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,Apple Inc.,3
20,Miller,Dan,Mountain View,CA,541 Del Medio Avenue,USA,94040-111,+1 (650) 644-3358,,dmiller@comcast.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,4
21,Chase,Kathy,Reno,NV,801 W 4th Street,USA,89503,+1 (775) 223-7665,,kachase@hotmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,5
22,Leacock,Heather,Orlando,FL,120 S Orange Ave,USA,32801,+1 (407) 999-7788,,hleacock@gmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,4
23,Gordon,John,Boston,MA,69 Salem Street,USA,2113,+1 (617) 522-1333,,johngordon22@yahoo.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,4
24,Ralston,Frank,Chicago,IL,162 E Superior Street,USA,60611,+1 (312) 332-3232,,fralston@gmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,3
25,Stevens,Victor,Madison,WI,319 N. Frances Street,USA,53703,+1 (608) 257-0597,,vstevens@yahoo.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,5
26,Cunningham,Richard,Fort Worth,TX,2211 W Berry Street,USA,76110,+1 (817) 924-7272,,ricunningham@hotmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,4
27,Gray,Patrick,Tucson,AZ,1033 N Park Ave,USA,85719,+1 (520) 622-4200,,patrick.gray@aol.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,4
28,Barnett,Julia,Salt Lake City,UT,302 S 700 E,USA,84102,+1 (801) 531-7272,,jubarnett@gmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,5
29,Brown,Robert,Toronto,ON,796 Dundas Street West,Canada,M6J 1V1,+1 (416) 363-8888,,robbrown@shaw.ca,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,3
30,Francis,Edward,Ottawa,ON,230 Elgin Street,Canada,K2P 1L7,+1 (613) 234-3322,,edfrancis@yachoo.ca,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,3
31,Silk,Martha,Halifax,NS,194A Chain Lake Drive,Canada,B3S 1C5,+1 (902) 450-0450,,marthasilk@gmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,5
32,Mitchell,Aaron,Winnipeg,MB,696 Osborne Street,Canada,R3L 2B9,+1 (204) 452-6452,,aaronmitchell@yahoo.ca,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,4
33,Sullivan,Ellie,Yellowknife,NT,5112 48 Street,Canada,X1A 1N6,+1 (867) 920-2233,,ellie.sullivan@shaw.ca,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,3
34,Fernandes,João,Lisbon,,Rua da Assunção 53,Portugal,,+351 (213) 466-111,,jfernandes@yahoo.pt,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,4
35,Sampaio,Madalena,Porto,,"Rua dos Campeões Europeus de Viena, 4350",Portugal,,+351 (225) 022-448,,masampaio@sapo.pt,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,4
36,Schneider,Hannah,Berlin,,Tauentzienstraße 8,Germany,10789,+49 030 26550280,,hannah.schneider@yahoo.de,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,5
37,Zimmermann,Fynn,Frankfurt,,Berger Straße 10,Germany,60316,+49 069 40598889,,fzimmermann@yahoo.de,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,3
38,Schröder,Niklas,Berlin,,Barbarossastraße 19,Germany,10779,+49 030 2141444,,nschroder@surfeu.de,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,3
39,Bernard,Camille,Paris,,"4, Rue Milton",France,75009,+33 01 49 70 65 65,,camille.bernard@yahoo.fr,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,4
40,Lefebvre,Dominique,Paris,,"8, Rue Hanovre",France,75002,+33 01 47 42 71 71,,dominiquelefebvre@gmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,4
41,Dubois,Marc,Lyon,,"11, Place Bellecour",France,69002,+33 04 78 30 30 30,,marc.dubois@hotmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,5
42,Girard,Wyatt,Bordeaux,,"9, Place Louis Barthou",France,33000,+33 05 56 96 96 96,,wyatt.girard@yahoo.fr,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,3
43,Mercier,Isabelle,Dijon,,"68, Rue Jouvence",France,21000,+33 03 80 73 66 99,,isabelle_mercier@apple.fr,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,3
44,Hämäläinen,Terhi,Helsinki,,Porthaninkatu 9,Finland,00530,+358 09 870 2000,,terhi.hamalainen@apple.fi,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,3
45,Kovács,Ladislav,Budapest,,Erzsébet krt. 58.,Hungary,H-1073,,,ladislav_kovacs@apple.hu,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,3
46,O'Reilly,Hugh,Dublin,Dublin,3 Chatham Street,Ireland,,+353 01 6792424,,hughoreilly@apple.ie,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,3
47,Mancini,Lucas,Rome,RM,"Via Degli Scipioni, 43",Italy,00192,+39 06 39733434,,lucas.mancini@yahoo.it,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,5
48,Van der Berg,Johannes,Amsterdam,VV,Lijnbaansgracht 120bg,Netherlands,1016,+31 020 6223130,,johavanderberg@yahoo.nl,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,5
49,Wójcik,Stanisław,Warsaw,,Ordynacka 10,Poland,00-358,+48 22 828 37 39,,stanisław.wójcik@wp.pl,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,4
50,Muñoz,Enrique,Madrid,,C/ San Bernardo 85,Spain,28015,+34 914 454 454,,enrique_munoz@yahoo.es,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,5
51,Johansson,Joakim,Stockholm,,Celsiusg. 9,Sweden,11230,+46 08-651 52 52,,joakim.johansson@yahoo.se,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,5
52,Jones,Emma,London,,202 Hoxton Street,United Kingdom,N1 5LH,+44 020 7707 0707,,emma_jones@hotmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,3
53,Hughes,Phil,London,,113 Lupus St,United Kingdom,SW1V 3EN,+44 020 7976 5722,,phil.hughes@gmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,3
54,Murray,Steve,Edinburgh ,,110 Raeburn Pl,United Kingdom,EH4 1HH,+44 0131 315 3300,,steve.murray@yahoo.uk,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,5
55,Taylor,Mark,Sidney,NSW,421 Bourke Street,Australia,2010,+61 (02) 9332 3633,,mark.taylor@yahoo.au,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,4
56,Gutiérrez,Diego,Buenos Aires,,307 Macacha Güemes,Argentina,1106,+54 (0)11 4311 4333,,diego.gutierrez@yahoo.ar,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,4
57,Rojas,Luis,Santiago,,"Calle Lira, 198",Chile,,+56 (0)2 635 4444,,luisrojas@yahoo.cl,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,5
58,Pareek,Manoj,Delhi,,"12,Community Centre",India,110017,+91 0124 39883988,,manoj.pareek@rediff.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,3
59,Srivastava,Puja,Bangalore,,"3,Raj Bhavan Road",India,560001,+91 080 22289999,,puja_srivastava@yahoo.in,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,,3
ID,lastName,firstName,city,address,country,phone,email,password,supportRep_ID
1,Gonçalves,Luís,São José dos Campos,"Av. Brigadeiro Faria Lima, 2170",Brazil,+55 (12) 3923-5555,luisg@embraer.com.br,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
2,Köhler,Leonie,Stuttgart,Theodor-Heuss-Straße 34,Germany,+49 0711 2842222,leonekohler@surfeu.de,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,5
3,Tremblay,François,Montréal,1498 rue Bélanger,Canada,+1 (514) 721-4711,ftremblay@gmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
4,Hansen,Bjørn,Oslo,Ullevålsveien 14,Norway,+47 22 44 22 22,bjorn.hansen@yahoo.no,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
5,Wichterlová,František,Prague,Klanova 9/506,Czech Republic,+420 2 4172 5555,frantisekw@jetbrains.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
6,Holý,Helena,Prague,Rilská 3174/6,Czech Republic,+420 2 4177 0449,hholy@gmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,5
7,Gruber,Astrid,Vienne,"Rotenturmstraße 4, 1010 Innere Stadt",Austria,+43 01 5134505,astrid.gruber@apple.at,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,5
8,Peeters,Daan,Brussels,Grétrystraat 63,Belgium,+32 02 219 03 03,daan_peeters@apple.be,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
9,Nielsen,Kara,Copenhagen,Sønder Boulevard 51,Denmark,+453 3331 9991,kara.nielsen@jubii.dk,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
10,Martins,Eduardo,São Paulo,"Rua Dr. Falcão Filho, 155",Brazil,+55 (11) 3033-5446,eduardo@woodstock.com.br,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
11,Rocha,Alexandre,São Paulo,"Av. Paulista, 2022",Brazil,+55 (11) 3055-3278,alero@uol.com.br,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,5
12,Almeida,Roberto,Rio de Janeiro,"Praça Pio X, 119",Brazil,+55 (21) 2271-7000,roberto.almeida@riotur.gov.br,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
13,Ramos,Fernanda,Brasília,Qe 7 Bloco G,Brazil,+55 (61) 3363-5547,fernadaramos4@uol.com.br,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
14,Philips,Mark,Edmonton,8210 111 ST NW,Canada,+1 (780) 434-4554,mphilips12@shaw.ca,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,5
15,Peterson,Jennifer,Vancouver,700 W Pender Street,Canada,+1 (604) 688-2255,jenniferp@rogers.ca,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
16,Harris,Frank,Mountain View,1600 Amphitheatre Parkway,USA,+1 (650) 253-0000,fharris@google.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
17,Smith,Jack,Redmond,1 Microsoft Way,USA,+1 (425) 882-8080,jacksmith@microsoft.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,5
18,Brooks,Michelle,New York,627 Broadway,USA,+1 (212) 221-3546,michelleb@aol.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
19,Goyer,Tim,Cupertino,1 Infinite Loop,USA,+1 (408) 996-1010,tgoyer@apple.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
20,Miller,Dan,Mountain View,541 Del Medio Avenue,USA,+1 (650) 644-3358,dmiller@comcast.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
21,Chase,Kathy,Reno,801 W 4th Street,USA,+1 (775) 223-7665,kachase@hotmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,5
22,Leacock,Heather,Orlando,120 S Orange Ave,USA,+1 (407) 999-7788,hleacock@gmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
23,Gordon,John,Boston,69 Salem Street,USA,+1 (617) 522-1333,johngordon22@yahoo.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
24,Ralston,Frank,Chicago,162 E Superior Street,USA,+1 (312) 332-3232,fralston@gmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
25,Stevens,Victor,Madison,319 N. Frances Street,USA,+1 (608) 257-0597,vstevens@yahoo.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,5
26,Cunningham,Richard,Fort Worth,2211 W Berry Street,USA,+1 (817) 924-7272,ricunningham@hotmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
27,Gray,Patrick,Tucson,1033 N Park Ave,USA,+1 (520) 622-4200,patrick.gray@aol.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
28,Barnett,Julia,Salt Lake City,302 S 700 E,USA,+1 (801) 531-7272,jubarnett@gmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,5
29,Brown,Robert,Toronto,796 Dundas Street West,Canada,+1 (416) 363-8888,robbrown@shaw.ca,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
30,Francis,Edward,Ottawa,230 Elgin Street,Canada,+1 (613) 234-3322,edfrancis@yachoo.ca,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
31,Silk,Martha,Halifax,194A Chain Lake Drive,Canada,+1 (902) 450-0450,marthasilk@gmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,5
32,Mitchell,Aaron,Winnipeg,696 Osborne Street,Canada,+1 (204) 452-6452,aaronmitchell@yahoo.ca,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
33,Sullivan,Ellie,Yellowknife,5112 48 Street,Canada,+1 (867) 920-2233,ellie.sullivan@shaw.ca,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
34,Fernandes,João,Lisbon,Rua da Assunção 53,Portugal,+351 (213) 466-111,jfernandes@yahoo.pt,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
35,Sampaio,Madalena,Porto,"Rua dos Campeões Europeus de Viena, 4350",Portugal,+351 (225) 022-448,masampaio@sapo.pt,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
36,Schneider,Hannah,Berlin,Tauentzienstraße 8,Germany,+49 030 26550280,hannah.schneider@yahoo.de,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,5
37,Zimmermann,Fynn,Frankfurt,Berger Straße 10,Germany,+49 069 40598889,fzimmermann@yahoo.de,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
38,Schröder,Niklas,Berlin,Barbarossastraße 19,Germany,+49 030 2141444,nschroder@surfeu.de,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
39,Bernard,Camille,Paris,"4, Rue Milton",France,+33 01 49 70 65 65,camille.bernard@yahoo.fr,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
40,Lefebvre,Dominique,Paris,"8, Rue Hanovre",France,+33 01 47 42 71 71,dominiquelefebvre@gmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
41,Dubois,Marc,Lyon,"11, Place Bellecour",France,+33 04 78 30 30 30,marc.dubois@hotmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,5
42,Girard,Wyatt,Bordeaux,"9, Place Louis Barthou",France,+33 05 56 96 96 96,wyatt.girard@yahoo.fr,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
43,Mercier,Isabelle,Dijon,"68, Rue Jouvence",France,+33 03 80 73 66 99,isabelle_mercier@apple.fr,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
44,Hämäläinen,Terhi,Helsinki,Porthaninkatu 9,Finland,+358 09 870 2000,terhi.hamalainen@apple.fi,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
45,Kovács,Ladislav,Budapest,Erzsébet krt. 58.,Hungary,,ladislav_kovacs@apple.hu,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
46,O'Reilly,Hugh,Dublin,3 Chatham Street,Ireland,+353 01 6792424,hughoreilly@apple.ie,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
47,Mancini,Lucas,Rome,"Via Degli Scipioni, 43",Italy,+39 06 39733434,lucas.mancini@yahoo.it,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,5
48,Van der Berg,Johannes,Amsterdam,Lijnbaansgracht 120bg,Netherlands,+31 020 6223130,johavanderberg@yahoo.nl,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,5
49,Wójcik,Stanisław,Warsaw,Ordynacka 10,Poland,+48 22 828 37 39,stanisław.wójcik@wp.pl,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
50,Muñoz,Enrique,Madrid,C/ San Bernardo 85,Spain,+34 914 454 454,enrique_munoz@yahoo.es,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,5
51,Johansson,Joakim,Stockholm,Celsiusg. 9,Sweden,+46 08-651 52 52,joakim.johansson@yahoo.se,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,5
52,Jones,Emma,London,202 Hoxton Street,United Kingdom,+44 020 7707 0707,emma_jones@hotmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
53,Hughes,Phil,London,113 Lupus St,United Kingdom,+44 020 7976 5722,phil.hughes@gmail.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
54,Murray,Steve,Edinburgh,110 Raeburn Pl,United Kingdom,+44 0131 315 3300,steve.murray@yahoo.uk,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,5
55,Taylor,Mark,Sidney,421 Bourke Street,Australia,+61 (02) 9332 3633,mark.taylor@yahoo.au,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
56,Gutiérrez,Diego,Buenos Aires,307 Macacha Güemes,Argentina,+54 (0)11 4311 4333,diego.gutierrez@yahoo.ar,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,4
57,Rojas,Luis,Santiago,"Calle Lira, 198",Chile,+56 (0)2 635 4444,luisrojas@yahoo.cl,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,5
58,Pareek,Manoj,Delhi,"12,Community Centre",India,+91 0124 39883988,manoj.pareek@rediff.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
59,Srivastava,Puja,Bangalore,"3,Raj Bhavan Road",India,+91 080 22289999,puja_srivastava@yahoo.in,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,3
1 ID lastName firstName city state address country phone postalCode email password fax supportRep_ID company
2 1 Gonçalves Luís São José dos Campos SP Av. Brigadeiro Faria Lima, 2170 Brazil +55 (12) 3923-5555 12227-000 luisg@embraer.com.br $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC +55 (12) 3923-5566 3 Embraer - Empresa Brasileira de Aeronáutica S.A.
3 2 Köhler Leonie Stuttgart Theodor-Heuss-Straße 34 Germany +49 0711 2842222 70174 leonekohler@surfeu.de $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 5
4 3 Tremblay François Montréal QC 1498 rue Bélanger Canada +1 (514) 721-4711 H2G 1A7 ftremblay@gmail.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 3
5 4 Hansen Bjørn Oslo Ullevålsveien 14 Norway +47 22 44 22 22 0171 bjorn.hansen@yahoo.no $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 4
6 5 Wichterlová František Prague Klanova 9/506 Czech Republic +420 2 4172 5555 14700 frantisekw@jetbrains.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC +420 2 4172 5555 4 JetBrains s.r.o.
7 6 Holý Helena Prague Rilská 3174/6 Czech Republic +420 2 4177 0449 14300 hholy@gmail.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 5
8 7 Gruber Astrid Vienne Rotenturmstraße 4, 1010 Innere Stadt Austria +43 01 5134505 1010 astrid.gruber@apple.at $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 5
9 8 Peeters Daan Brussels Grétrystraat 63 Belgium +32 02 219 03 03 1000 daan_peeters@apple.be $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 4
10 9 Nielsen Kara Copenhagen Sønder Boulevard 51 Denmark +453 3331 9991 1720 kara.nielsen@jubii.dk $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 4
11 10 Martins Eduardo São Paulo SP Rua Dr. Falcão Filho, 155 Brazil +55 (11) 3033-5446 01007-010 eduardo@woodstock.com.br $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC +55 (11) 3033-4564 4 Woodstock Discos
12 11 Rocha Alexandre São Paulo SP Av. Paulista, 2022 Brazil +55 (11) 3055-3278 01310-200 alero@uol.com.br $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC +55 (11) 3055-8131 5 Banco do Brasil S.A.
13 12 Almeida Roberto Rio de Janeiro RJ Praça Pio X, 119 Brazil +55 (21) 2271-7000 20040-020 roberto.almeida@riotur.gov.br $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC +55 (21) 2271-7070 3 Riotur
14 13 Ramos Fernanda Brasília DF Qe 7 Bloco G Brazil +55 (61) 3363-5547 71020-677 fernadaramos4@uol.com.br $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC +55 (61) 3363-7855 4
15 14 Philips Mark Edmonton AB 8210 111 ST NW Canada +1 (780) 434-4554 T6G 2C7 mphilips12@shaw.ca $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC +1 (780) 434-5565 5 Telus
16 15 Peterson Jennifer Vancouver BC 700 W Pender Street Canada +1 (604) 688-2255 V6C 1G8 jenniferp@rogers.ca $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC +1 (604) 688-8756 3 Rogers Canada
17 16 Harris Frank Mountain View CA 1600 Amphitheatre Parkway USA +1 (650) 253-0000 94043-1351 fharris@google.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC +1 (650) 253-0000 4 Google Inc.
18 17 Smith Jack Redmond WA 1 Microsoft Way USA +1 (425) 882-8080 98052-8300 jacksmith@microsoft.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC +1 (425) 882-8081 5 Microsoft Corporation
19 18 Brooks Michelle New York NY 627 Broadway USA +1 (212) 221-3546 10012-2612 michelleb@aol.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC +1 (212) 221-4679 3
20 19 Goyer Tim Cupertino CA 1 Infinite Loop USA +1 (408) 996-1010 95014 tgoyer@apple.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC +1 (408) 996-1011 3 Apple Inc.
21 20 Miller Dan Mountain View CA 541 Del Medio Avenue USA +1 (650) 644-3358 94040-111 dmiller@comcast.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 4
22 21 Chase Kathy Reno NV 801 W 4th Street USA +1 (775) 223-7665 89503 kachase@hotmail.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 5
23 22 Leacock Heather Orlando FL 120 S Orange Ave USA +1 (407) 999-7788 32801 hleacock@gmail.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 4
24 23 Gordon John Boston MA 69 Salem Street USA +1 (617) 522-1333 2113 johngordon22@yahoo.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 4
25 24 Ralston Frank Chicago IL 162 E Superior Street USA +1 (312) 332-3232 60611 fralston@gmail.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 3
26 25 Stevens Victor Madison WI 319 N. Frances Street USA +1 (608) 257-0597 53703 vstevens@yahoo.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 5
27 26 Cunningham Richard Fort Worth TX 2211 W Berry Street USA +1 (817) 924-7272 76110 ricunningham@hotmail.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 4
28 27 Gray Patrick Tucson AZ 1033 N Park Ave USA +1 (520) 622-4200 85719 patrick.gray@aol.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 4
29 28 Barnett Julia Salt Lake City UT 302 S 700 E USA +1 (801) 531-7272 84102 jubarnett@gmail.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 5
30 29 Brown Robert Toronto ON 796 Dundas Street West Canada +1 (416) 363-8888 M6J 1V1 robbrown@shaw.ca $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 3
31 30 Francis Edward Ottawa ON 230 Elgin Street Canada +1 (613) 234-3322 K2P 1L7 edfrancis@yachoo.ca $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 3
32 31 Silk Martha Halifax NS 194A Chain Lake Drive Canada +1 (902) 450-0450 B3S 1C5 marthasilk@gmail.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 5
33 32 Mitchell Aaron Winnipeg MB 696 Osborne Street Canada +1 (204) 452-6452 R3L 2B9 aaronmitchell@yahoo.ca $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 4
34 33 Sullivan Ellie Yellowknife NT 5112 48 Street Canada +1 (867) 920-2233 X1A 1N6 ellie.sullivan@shaw.ca $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 3
35 34 Fernandes João Lisbon Rua da Assunção 53 Portugal +351 (213) 466-111 jfernandes@yahoo.pt $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 4
36 35 Sampaio Madalena Porto Rua dos Campeões Europeus de Viena, 4350 Portugal +351 (225) 022-448 masampaio@sapo.pt $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 4
37 36 Schneider Hannah Berlin Tauentzienstraße 8 Germany +49 030 26550280 10789 hannah.schneider@yahoo.de $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 5
38 37 Zimmermann Fynn Frankfurt Berger Straße 10 Germany +49 069 40598889 60316 fzimmermann@yahoo.de $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 3
39 38 Schröder Niklas Berlin Barbarossastraße 19 Germany +49 030 2141444 10779 nschroder@surfeu.de $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 3
40 39 Bernard Camille Paris 4, Rue Milton France +33 01 49 70 65 65 75009 camille.bernard@yahoo.fr $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 4
41 40 Lefebvre Dominique Paris 8, Rue Hanovre France +33 01 47 42 71 71 75002 dominiquelefebvre@gmail.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 4
42 41 Dubois Marc Lyon 11, Place Bellecour France +33 04 78 30 30 30 69002 marc.dubois@hotmail.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 5
43 42 Girard Wyatt Bordeaux 9, Place Louis Barthou France +33 05 56 96 96 96 33000 wyatt.girard@yahoo.fr $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 3
44 43 Mercier Isabelle Dijon 68, Rue Jouvence France +33 03 80 73 66 99 21000 isabelle_mercier@apple.fr $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 3
45 44 Hämäläinen Terhi Helsinki Porthaninkatu 9 Finland +358 09 870 2000 00530 terhi.hamalainen@apple.fi $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 3
46 45 Kovács Ladislav Budapest Erzsébet krt. 58. Hungary H-1073 ladislav_kovacs@apple.hu $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 3
47 46 O'Reilly Hugh Dublin Dublin 3 Chatham Street Ireland +353 01 6792424 hughoreilly@apple.ie $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 3
48 47 Mancini Lucas Rome RM Via Degli Scipioni, 43 Italy +39 06 39733434 00192 lucas.mancini@yahoo.it $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 5
49 48 Van der Berg Johannes Amsterdam VV Lijnbaansgracht 120bg Netherlands +31 020 6223130 1016 johavanderberg@yahoo.nl $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 5
50 49 Wójcik Stanisław Warsaw Ordynacka 10 Poland +48 22 828 37 39 00-358 stanisław.wójcik@wp.pl $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 4
51 50 Muñoz Enrique Madrid C/ San Bernardo 85 Spain +34 914 454 454 28015 enrique_munoz@yahoo.es $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 5
52 51 Johansson Joakim Stockholm Celsiusg. 9 Sweden +46 08-651 52 52 11230 joakim.johansson@yahoo.se $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 5
53 52 Jones Emma London 202 Hoxton Street United Kingdom +44 020 7707 0707 N1 5LH emma_jones@hotmail.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 3
54 53 Hughes Phil London 113 Lupus St United Kingdom +44 020 7976 5722 SW1V 3EN phil.hughes@gmail.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 3
55 54 Murray Steve Edinburgh Edinburgh 110 Raeburn Pl United Kingdom +44 0131 315 3300 EH4 1HH steve.murray@yahoo.uk $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 5
56 55 Taylor Mark Sidney NSW 421 Bourke Street Australia +61 (02) 9332 3633 2010 mark.taylor@yahoo.au $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 4
57 56 Gutiérrez Diego Buenos Aires 307 Macacha Güemes Argentina +54 (0)11 4311 4333 1106 diego.gutierrez@yahoo.ar $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 4
58 57 Rojas Luis Santiago Calle Lira, 198 Chile +56 (0)2 635 4444 luisrojas@yahoo.cl $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 5
59 58 Pareek Manoj Delhi 12,Community Centre India +91 0124 39883988 110017 manoj.pareek@rediff.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 3
60 59 Srivastava Puja Bangalore 3,Raj Bhavan Road India +91 080 22289999 560001 puja_srivastava@yahoo.in $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 3

View File

@@ -1,9 +1,9 @@
ID,lastName,firstName,city,state,address,country,postalCode,phone,fax,email,password,title,birthDate,hireDate,reportsTo_ID
1,Adams,Andrew,Edmonton,AB,11120 Jasper Ave NW,Canada,T5K 2N1,+1 (780) 428-9482,+1 (780) 428-3457,andrew@chinookcorp.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,General Manager,1962-02-18 00:00:00,2002-08-14 00:00:00,
2,Edwards,Nancy,Calgary,AB,825 8 Ave SW,Canada,T2P 2T3,+1 (403) 262-3443,+1 (403) 262-3322,nancy@chinookcorp.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,Sales Manager,1958-12-08 00:00:00,2002-05-01 00:00:00,1
3,Peacock,Jane,Calgary,AB,1111 6 Ave SW,Canada,T2P 5M5,+1 (403) 262-3443,+1 (403) 262-6712,jane@chinookcorp.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,Sales Support Agent,1973-08-29 00:00:00,2002-04-01 00:00:00,2
4,Park,Margaret,Calgary,AB,683 10 Street SW,Canada,T2P 5G3,+1 (403) 263-4423,+1 (403) 263-4289,margaret@chinookcorp.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,Sales Support Agent,1947-09-19 00:00:00,2003-05-03 00:00:00,2
5,Johnson,Steve,Calgary,AB,7727B 41 Ave,Canada,T3B 1Y7,1 (780) 836-9987,1 (780) 836-9543,steve@chinookcorp.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,Sales Support Agent,1965-03-03 00:00:00,2003-10-17 00:00:00,2
6,Mitchell,Michael,Calgary,AB,5827 Bowness Road NW,Canada,T3B 0C5,+1 (403) 246-9887,+1 (403) 246-9899,michael@chinookcorp.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,IT Manager,1973-07-01 00:00:00,2003-10-17 00:00:00,1
7,King,Robert,Lethbridge,AB,590 Columbia Boulevard West,Canada,T1K 5N8,+1 (403) 456-9986,+1 (403) 456-8485,robert@chinookcorp.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,IT Staff,1970-05-29 00:00:00,2004-01-02 00:00:00,6
8,Callahan,Laura,Lethbridge,AB,923 7 ST NW,Canada,T1H 1Y8,+1 (403) 467-3351,+1 (403) 467-8772,laura@chinookcorp.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,IT Staff,1968-01-09 00:00:00,2004-03-04 00:00:00,6
ID,lastName,firstName,city,address,country,phone,email,password,title,birthDate,hireDate,reportsTo_ID
1,Adams,Andrew,Edmonton,11120 Jasper Ave NW,Canada,+1 (780) 428-9482,andrew@chinookcorp.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,General Manager,1962-02-18 00:00:00,2002-08-14 00:00:00,
2,Edwards,Nancy,Calgary,825 8 Ave SW,Canada,+1 (403) 262-3443,nancy@chinookcorp.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,Sales Manager,1958-12-08 00:00:00,2002-05-01 00:00:00,1
3,Peacock,Jane,Calgary,1111 6 Ave SW,Canada,+1 (403) 262-3443,jane@chinookcorp.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,Sales Support Agent,1973-08-29 00:00:00,2002-04-01 00:00:00,2
4,Park,Margaret,Calgary,683 10 Street SW,Canada,+1 (403) 263-4423,margaret@chinookcorp.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,Sales Support Agent,1947-09-19 00:00:00,2003-05-03 00:00:00,2
5,Johnson,Steve,Calgary,7727B 41 Ave,Canada,1 (780) 836-9987,steve@chinookcorp.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,Sales Support Agent,1965-03-03 00:00:00,2003-10-17 00:00:00,2
6,Mitchell,Michael,Calgary,5827 Bowness Road NW,Canada,+1 (403) 246-9887,michael@chinookcorp.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,IT Manager,1973-07-01 00:00:00,2003-10-17 00:00:00,1
7,King,Robert,Lethbridge,590 Columbia Boulevard West,Canada,+1 (403) 456-9986,robert@chinookcorp.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,IT Staff,1970-05-29 00:00:00,2004-01-02 00:00:00,6
8,Callahan,Laura,Lethbridge,923 7 ST NW,Canada,+1 (403) 467-3351,laura@chinookcorp.com,$2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC,IT Staff,1968-01-09 00:00:00,2004-03-04 00:00:00,6
1 ID lastName firstName city state address country phone postalCode email password fax title birthDate hireDate reportsTo_ID
2 1 Adams Andrew Edmonton AB 11120 Jasper Ave NW Canada +1 (780) 428-9482 T5K 2N1 andrew@chinookcorp.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC +1 (780) 428-3457 General Manager 1962-02-18 00:00:00 2002-08-14 00:00:00
3 2 Edwards Nancy Calgary AB 825 8 Ave SW Canada +1 (403) 262-3443 T2P 2T3 nancy@chinookcorp.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC +1 (403) 262-3322 Sales Manager 1958-12-08 00:00:00 2002-05-01 00:00:00 1
4 3 Peacock Jane Calgary AB 1111 6 Ave SW Canada +1 (403) 262-3443 T2P 5M5 jane@chinookcorp.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC +1 (403) 262-6712 Sales Support Agent 1973-08-29 00:00:00 2002-04-01 00:00:00 2
5 4 Park Margaret Calgary AB 683 10 Street SW Canada +1 (403) 263-4423 T2P 5G3 margaret@chinookcorp.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC +1 (403) 263-4289 Sales Support Agent 1947-09-19 00:00:00 2003-05-03 00:00:00 2
6 5 Johnson Steve Calgary AB 7727B 41 Ave Canada 1 (780) 836-9987 T3B 1Y7 steve@chinookcorp.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC 1 (780) 836-9543 Sales Support Agent 1965-03-03 00:00:00 2003-10-17 00:00:00 2
7 6 Mitchell Michael Calgary AB 5827 Bowness Road NW Canada +1 (403) 246-9887 T3B 0C5 michael@chinookcorp.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC +1 (403) 246-9899 IT Manager 1973-07-01 00:00:00 2003-10-17 00:00:00 1
8 7 King Robert Lethbridge AB 590 Columbia Boulevard West Canada +1 (403) 456-9986 T1K 5N8 robert@chinookcorp.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC +1 (403) 456-8485 IT Staff 1970-05-29 00:00:00 2004-01-02 00:00:00 6
9 8 Callahan Laura Lethbridge AB 923 7 ST NW Canada +1 (403) 467-3351 T1H 1Y8 laura@chinookcorp.com $2b$10$8f5ztDxjf/oz225jNdNB0uCtJSMeVwkchFayUrTS6xEcRVpoyIooC +1 (403) 467-8772 IT Staff 1968-01-09 00:00:00 2004-03-04 00:00:00 6

View File

@@ -1,413 +1,413 @@
ID,invoiceDate,billingAddress,billingCity,billingState,billingCountry,billingPostalCode,total,status,customer_ID
1,2009-01-01 00:00:00,Theodor-Heuss-Straße 34,Stuttgart,,Germany,70174,1.98,1,2
2,2009-01-02 00:00:00,Ullevålsveien 14,Oslo,,Norway,0171,3.96,1,4
3,2009-01-03 00:00:00,Grétrystraat 63,Brussels,,Belgium,1000,5.94,1,8
4,2009-01-06 00:00:00,8210 111 ST NW,Edmonton,AB,Canada,T6G 2C7,8.91,1,14
5,2009-01-11 00:00:00,69 Salem Street,Boston,MA,USA,2113,13.86,1,23
6,2009-01-19 00:00:00,Berger Straße 10,Frankfurt,,Germany,60316,0.99,1,37
7,2009-02-01 00:00:00,Barbarossastraße 19,Berlin,,Germany,10779,1.98,1,38
8,2009-02-01 00:00:00,"8, Rue Hanovre",Paris,,France,75002,1.98,1,40
9,2009-02-02 00:00:00,"9, Place Louis Barthou",Bordeaux,,France,33000,3.96,1,42
10,2009-02-03 00:00:00,3 Chatham Street,Dublin,Dublin,Ireland,,5.94,1,46
11,2009-02-06 00:00:00,202 Hoxton Street,London,,United Kingdom,N1 5LH,8.91,1,52
12,2009-02-11 00:00:00,Theodor-Heuss-Straße 34,Stuttgart,,Germany,70174,13.86,1,2
13,2009-02-19 00:00:00,1600 Amphitheatre Parkway,Mountain View,CA,USA,94043-1351,0.99,1,16
14,2009-03-04 00:00:00,1 Microsoft Way,Redmond,WA,USA,98052-8300,1.98,1,17
15,2009-03-04 00:00:00,1 Infinite Loop,Cupertino,CA,USA,95014,1.98,1,19
16,2009-03-05 00:00:00,801 W 4th Street,Reno,NV,USA,89503,3.96,1,21
17,2009-03-06 00:00:00,319 N. Frances Street,Madison,WI,USA,53703,5.94,1,25
18,2009-03-09 00:00:00,194A Chain Lake Drive,Halifax,NS,Canada,B3S 1C5,8.91,1,31
19,2009-03-14 00:00:00,"8, Rue Hanovre",Paris,,France,75002,13.86,1,40
20,2009-03-22 00:00:00,110 Raeburn Pl,Edinburgh ,,United Kingdom,EH4 1HH,0.99,1,54
21,2009-04-04 00:00:00,421 Bourke Street,Sidney,NSW,Australia,2010,1.98,1,55
22,2009-04-04 00:00:00,"Calle Lira, 198",Santiago,,Chile,,1.98,1,57
23,2009-04-05 00:00:00,"3,Raj Bhavan Road",Bangalore,,India,560001,3.96,1,59
24,2009-04-06 00:00:00,Ullevålsveien 14,Oslo,,Norway,0171,5.94,1,4
25,2009-04-09 00:00:00,"Rua Dr. Falcão Filho, 155",São Paulo,SP,Brazil,01007-010,8.91,1,10
26,2009-04-14 00:00:00,1 Infinite Loop,Cupertino,CA,USA,95014,13.86,1,19
27,2009-04-22 00:00:00,5112 48 Street,Yellowknife,NT,Canada,X1A 1N6,0.99,1,33
28,2009-05-05 00:00:00,Rua da Assunção 53,Lisbon,,Portugal,,1.98,1,34
29,2009-05-05 00:00:00,Tauentzienstraße 8,Berlin,,Germany,10789,1.98,1,36
30,2009-05-06 00:00:00,Barbarossastraße 19,Berlin,,Germany,10779,3.96,1,38
31,2009-05-07 00:00:00,"9, Place Louis Barthou",Bordeaux,,France,33000,5.94,1,42
32,2009-05-10 00:00:00,Lijnbaansgracht 120bg,Amsterdam,VV,Netherlands,1016,8.91,1,48
33,2009-05-15 00:00:00,"Calle Lira, 198",Santiago,,Chile,,13.86,1,57
34,2009-05-23 00:00:00,"Praça Pio X, 119",Rio de Janeiro,RJ,Brazil,20040-020,0.99,1,12
35,2009-06-05 00:00:00,Qe 7 Bloco G,Brasília,DF,Brazil,71020-677,1.98,1,13
36,2009-06-05 00:00:00,700 W Pender Street,Vancouver,BC,Canada,V6C 1G8,1.98,1,15
37,2009-06-06 00:00:00,1 Microsoft Way,Redmond,WA,USA,98052-8300,3.96,1,17
38,2009-06-07 00:00:00,801 W 4th Street,Reno,NV,USA,89503,5.94,1,21
39,2009-06-10 00:00:00,1033 N Park Ave,Tucson,AZ,USA,85719,8.91,1,27
40,2009-06-15 00:00:00,Tauentzienstraße 8,Berlin,,Germany,10789,13.86,1,36
41,2009-06-23 00:00:00,C/ San Bernardo 85,Madrid,,Spain,28015,0.99,1,50
42,2009-07-06 00:00:00,Celsiusg. 9,Stockholm,,Sweden,11230,1.98,1,51
43,2009-07-06 00:00:00,113 Lupus St,London,,United Kingdom,SW1V 3EN,1.98,1,53
44,2009-07-07 00:00:00,421 Bourke Street,Sidney,NSW,Australia,2010,3.96,1,55
45,2009-07-08 00:00:00,"3,Raj Bhavan Road",Bangalore,,India,560001,5.94,1,59
46,2009-07-11 00:00:00,Rilská 3174/6,Prague,,Czech Republic,14300,8.91,1,6
47,2009-07-16 00:00:00,700 W Pender Street,Vancouver,BC,Canada,V6C 1G8,13.86,1,15
48,2009-07-24 00:00:00,796 Dundas Street West,Toronto,ON,Canada,M6J 1V1,0.99,1,29
49,2009-08-06 00:00:00,230 Elgin Street,Ottawa,ON,Canada,K2P 1L7,1.98,1,30
50,2009-08-06 00:00:00,696 Osborne Street,Winnipeg,MB,Canada,R3L 2B9,1.98,1,32
51,2009-08-07 00:00:00,Rua da Assunção 53,Lisbon,,Portugal,,3.96,1,34
52,2009-08-08 00:00:00,Barbarossastraße 19,Berlin,,Germany,10779,5.94,1,38
53,2009-08-11 00:00:00,Porthaninkatu 9,Helsinki,,Finland,00530,8.91,1,44
54,2009-08-16 00:00:00,113 Lupus St,London,,United Kingdom,SW1V 3EN,13.86,1,53
55,2009-08-24 00:00:00,Grétrystraat 63,Brussels,,Belgium,1000,0.99,1,8
56,2009-09-06 00:00:00,Sønder Boulevard 51,Copenhagen,,Denmark,1720,1.98,1,9
57,2009-09-06 00:00:00,"Av. Paulista, 2022",São Paulo,SP,Brazil,01310-200,1.98,1,11
58,2009-09-07 00:00:00,Qe 7 Bloco G,Brasília,DF,Brazil,71020-677,3.96,1,13
59,2009-09-08 00:00:00,1 Microsoft Way,Redmond,WA,USA,98052-8300,5.94,1,17
60,2009-09-11 00:00:00,69 Salem Street,Boston,MA,USA,2113,8.91,1,23
61,2009-09-16 00:00:00,696 Osborne Street,Winnipeg,MB,Canada,R3L 2B9,13.86,1,32
62,2009-09-24 00:00:00,3 Chatham Street,Dublin,Dublin,Ireland,,0.99,1,46
63,2009-10-07 00:00:00,"Via Degli Scipioni, 43",Rome,RM,Italy,00192,1.98,1,47
64,2009-10-07 00:00:00,Ordynacka 10,Warsaw,,Poland,00-358,1.98,1,49
65,2009-10-08 00:00:00,Celsiusg. 9,Stockholm,,Sweden,11230,3.96,1,51
66,2009-10-09 00:00:00,421 Bourke Street,Sidney,NSW,Australia,2010,5.94,1,55
67,2009-10-12 00:00:00,Theodor-Heuss-Straße 34,Stuttgart,,Germany,70174,8.91,1,2
68,2009-10-17 00:00:00,"Av. Paulista, 2022",São Paulo,SP,Brazil,01310-200,13.86,1,11
69,2009-10-25 00:00:00,319 N. Frances Street,Madison,WI,USA,53703,0.99,1,25
70,2009-11-07 00:00:00,2211 W Berry Street,Fort Worth,TX,USA,76110,1.98,1,26
71,2009-11-07 00:00:00,302 S 700 E,Salt Lake City,UT,USA,84102,1.98,1,28
72,2009-11-08 00:00:00,230 Elgin Street,Ottawa,ON,Canada,K2P 1L7,3.96,1,30
73,2009-11-09 00:00:00,Rua da Assunção 53,Lisbon,,Portugal,,5.94,1,34
74,2009-11-12 00:00:00,"8, Rue Hanovre",Paris,,France,75002,8.91,1,40
75,2009-11-17 00:00:00,Ordynacka 10,Warsaw,,Poland,00-358,13.86,1,49
76,2009-11-25 00:00:00,Ullevålsveien 14,Oslo,,Norway,0171,0.99,1,4
77,2009-12-08 00:00:00,Klanova 9/506,Prague,,Czech Republic,14700,1.98,1,5
78,2009-12-08 00:00:00,"Rotenturmstraße 4, 1010 Innere Stadt",Vienne,,Austria,1010,1.98,1,7
79,2009-12-09 00:00:00,Sønder Boulevard 51,Copenhagen,,Denmark,1720,3.96,1,9
80,2009-12-10 00:00:00,Qe 7 Bloco G,Brasília,DF,Brazil,71020-677,5.94,1,13
81,2009-12-13 00:00:00,1 Infinite Loop,Cupertino,CA,USA,95014,8.91,1,19
82,2009-12-18 00:00:00,302 S 700 E,Salt Lake City,UT,USA,84102,13.86,1,28
83,2009-12-26 00:00:00,"9, Place Louis Barthou",Bordeaux,,France,33000,0.99,1,42
84,2010-01-08 00:00:00,"68, Rue Jouvence",Dijon,,France,21000,1.98,1,43
85,2010-01-08 00:00:00,Erzsébet krt. 58.,Budapest,,Hungary,H-1073,1.98,1,45
86,2010-01-09 00:00:00,"Via Degli Scipioni, 43",Rome,RM,Italy,00192,3.96,1,47
87,2010-01-10 00:00:00,Celsiusg. 9,Stockholm,,Sweden,11230,6.94,1,51
88,2010-01-13 00:00:00,"Calle Lira, 198",Santiago,,Chile,,17.91,1,57
89,2010-01-18 00:00:00,"Rotenturmstraße 4, 1010 Innere Stadt",Vienne,,Austria,1010,18.86,1,7
90,2010-01-26 00:00:00,801 W 4th Street,Reno,NV,USA,89503,0.99,1,21
91,2010-02-08 00:00:00,120 S Orange Ave,Orlando,FL,USA,32801,1.98,1,22
92,2010-02-08 00:00:00,162 E Superior Street,Chicago,IL,USA,60611,1.98,1,24
93,2010-02-09 00:00:00,2211 W Berry Street,Fort Worth,TX,USA,76110,3.96,1,26
94,2010-02-10 00:00:00,230 Elgin Street,Ottawa,ON,Canada,K2P 1L7,5.94,1,30
95,2010-02-13 00:00:00,Tauentzienstraße 8,Berlin,,Germany,10789,8.91,1,36
96,2010-02-18 00:00:00,Erzsébet krt. 58.,Budapest,,Hungary,H-1073,21.86,1,45
97,2010-02-26 00:00:00,"3,Raj Bhavan Road",Bangalore,,India,560001,1.99,1,59
98,2010-03-11 00:00:00,"Av. Brigadeiro Faria Lima, 2170",São José dos Campos,SP,Brazil,12227-000,3.98,1,1
99,2010-03-11 00:00:00,1498 rue Bélanger,Montréal,QC,Canada,H2G 1A7,3.98,1,3
100,2010-03-12 00:00:00,Klanova 9/506,Prague,,Czech Republic,14700,3.96,1,5
101,2010-03-13 00:00:00,Sønder Boulevard 51,Copenhagen,,Denmark,1720,5.94,1,9
102,2010-03-16 00:00:00,700 W Pender Street,Vancouver,BC,Canada,V6C 1G8,9.91,1,15
103,2010-03-21 00:00:00,162 E Superior Street,Chicago,IL,USA,60611,15.86,1,24
104,2010-03-29 00:00:00,Barbarossastraße 19,Berlin,,Germany,10779,0.99,1,38
105,2010-04-11 00:00:00,"4, Rue Milton",Paris,,France,75009,1.98,1,39
106,2010-04-11 00:00:00,"11, Place Bellecour",Lyon,,France,69002,1.98,1,41
107,2010-04-12 00:00:00,"68, Rue Jouvence",Dijon,,France,21000,3.96,1,43
108,2010-04-13 00:00:00,"Via Degli Scipioni, 43",Rome,RM,Italy,00192,5.94,1,47
109,2010-04-16 00:00:00,113 Lupus St,London,,United Kingdom,SW1V 3EN,8.91,1,53
110,2010-04-21 00:00:00,1498 rue Bélanger,Montréal,QC,Canada,H2G 1A7,13.86,1,3
111,2010-04-29 00:00:00,1 Microsoft Way,Redmond,WA,USA,98052-8300,0.99,1,17
112,2010-05-12 00:00:00,627 Broadway,New York,NY,USA,10012-2612,1.98,1,18
113,2010-05-12 00:00:00,541 Del Medio Avenue,Mountain View,CA,USA,94040-111,1.98,1,20
114,2010-05-13 00:00:00,120 S Orange Ave,Orlando,FL,USA,32801,3.96,1,22
115,2010-05-14 00:00:00,2211 W Berry Street,Fort Worth,TX,USA,76110,5.94,1,26
116,2010-05-17 00:00:00,696 Osborne Street,Winnipeg,MB,Canada,R3L 2B9,8.91,1,32
117,2010-05-22 00:00:00,"11, Place Bellecour",Lyon,,France,69002,13.86,1,41
118,2010-05-30 00:00:00,421 Bourke Street,Sidney,NSW,Australia,2010,0.99,1,55
119,2010-06-12 00:00:00,307 Macacha Güemes,Buenos Aires,,Argentina,1106,1.98,1,56
120,2010-06-12 00:00:00,"12,Community Centre",Delhi,,India,110017,1.98,1,58
121,2010-06-13 00:00:00,"Av. Brigadeiro Faria Lima, 2170",São José dos Campos,SP,Brazil,12227-000,3.96,1,1
122,2010-06-14 00:00:00,Klanova 9/506,Prague,,Czech Republic,14700,5.94,1,5
123,2010-06-17 00:00:00,"Av. Paulista, 2022",São Paulo,SP,Brazil,01310-200,8.91,1,11
124,2010-06-22 00:00:00,541 Del Medio Avenue,Mountain View,CA,USA,94040-111,13.86,1,20
125,2010-06-30 00:00:00,Rua da Assunção 53,Lisbon,,Portugal,,0.99,1,34
126,2010-07-13 00:00:00,"Rua dos Campeões Europeus de Viena, 4350",Porto,,Portugal,,1.98,1,35
127,2010-07-13 00:00:00,Berger Straße 10,Frankfurt,,Germany,60316,1.98,1,37
128,2010-07-14 00:00:00,"4, Rue Milton",Paris,,France,75009,3.96,1,39
129,2010-07-15 00:00:00,"68, Rue Jouvence",Dijon,,France,21000,5.94,1,43
130,2010-07-18 00:00:00,Ordynacka 10,Warsaw,,Poland,00-358,8.91,1,49
131,2010-07-23 00:00:00,"12,Community Centre",Delhi,,India,110017,13.86,1,58
132,2010-07-31 00:00:00,Qe 7 Bloco G,Brasília,DF,Brazil,71020-677,0.99,1,13
133,2010-08-13 00:00:00,8210 111 ST NW,Edmonton,AB,Canada,T6G 2C7,1.98,1,14
134,2010-08-13 00:00:00,1600 Amphitheatre Parkway,Mountain View,CA,USA,94043-1351,1.98,1,16
135,2010-08-14 00:00:00,627 Broadway,New York,NY,USA,10012-2612,3.96,1,18
136,2010-08-15 00:00:00,120 S Orange Ave,Orlando,FL,USA,32801,5.94,1,22
137,2010-08-18 00:00:00,302 S 700 E,Salt Lake City,UT,USA,84102,8.91,1,28
138,2010-08-23 00:00:00,Berger Straße 10,Frankfurt,,Germany,60316,13.86,1,37
139,2010-08-31 00:00:00,Celsiusg. 9,Stockholm,,Sweden,11230,0.99,1,51
140,2010-09-13 00:00:00,202 Hoxton Street,London,,United Kingdom,N1 5LH,1.98,1,52
141,2010-09-13 00:00:00,110 Raeburn Pl,Edinburgh ,,United Kingdom,EH4 1HH,1.98,1,54
142,2010-09-14 00:00:00,307 Macacha Güemes,Buenos Aires,,Argentina,1106,3.96,1,56
143,2010-09-15 00:00:00,"Av. Brigadeiro Faria Lima, 2170",São José dos Campos,SP,Brazil,12227-000,5.94,1,1
144,2010-09-18 00:00:00,"Rotenturmstraße 4, 1010 Innere Stadt",Vienne,,Austria,1010,8.91,1,7
145,2010-09-23 00:00:00,1600 Amphitheatre Parkway,Mountain View,CA,USA,94043-1351,13.86,1,16
146,2010-10-01 00:00:00,230 Elgin Street,Ottawa,ON,Canada,K2P 1L7,0.99,1,30
147,2010-10-14 00:00:00,194A Chain Lake Drive,Halifax,NS,Canada,B3S 1C5,1.98,1,31
148,2010-10-14 00:00:00,5112 48 Street,Yellowknife,NT,Canada,X1A 1N6,1.98,1,33
149,2010-10-15 00:00:00,"Rua dos Campeões Europeus de Viena, 4350",Porto,,Portugal,,3.96,1,35
150,2010-10-16 00:00:00,"4, Rue Milton",Paris,,France,75009,5.94,1,39
151,2010-10-19 00:00:00,Erzsébet krt. 58.,Budapest,,Hungary,H-1073,8.91,1,45
152,2010-10-24 00:00:00,110 Raeburn Pl,Edinburgh ,,United Kingdom,EH4 1HH,13.86,1,54
153,2010-11-01 00:00:00,Sønder Boulevard 51,Copenhagen,,Denmark,1720,0.99,1,9
154,2010-11-14 00:00:00,"Rua Dr. Falcão Filho, 155",São Paulo,SP,Brazil,01007-010,1.98,1,10
155,2010-11-14 00:00:00,"Praça Pio X, 119",Rio de Janeiro,RJ,Brazil,20040-020,1.98,1,12
156,2010-11-15 00:00:00,8210 111 ST NW,Edmonton,AB,Canada,T6G 2C7,3.96,1,14
157,2010-11-16 00:00:00,627 Broadway,New York,NY,USA,10012-2612,5.94,1,18
158,2010-11-19 00:00:00,162 E Superior Street,Chicago,IL,USA,60611,8.91,1,24
159,2010-11-24 00:00:00,5112 48 Street,Yellowknife,NT,Canada,X1A 1N6,13.86,1,33
160,2010-12-02 00:00:00,"Via Degli Scipioni, 43",Rome,RM,Italy,00192,0.99,1,47
161,2010-12-15 00:00:00,Lijnbaansgracht 120bg,Amsterdam,VV,Netherlands,1016,1.98,1,48
162,2010-12-15 00:00:00,C/ San Bernardo 85,Madrid,,Spain,28015,1.98,1,50
163,2010-12-16 00:00:00,202 Hoxton Street,London,,United Kingdom,N1 5LH,3.96,1,52
164,2010-12-17 00:00:00,307 Macacha Güemes,Buenos Aires,,Argentina,1106,5.94,1,56
165,2010-12-20 00:00:00,1498 rue Bélanger,Montréal,QC,Canada,H2G 1A7,8.91,1,3
166,2010-12-25 00:00:00,"Praça Pio X, 119",Rio de Janeiro,RJ,Brazil,20040-020,13.86,1,12
167,2011-01-02 00:00:00,2211 W Berry Street,Fort Worth,TX,USA,76110,0.99,1,26
168,2011-01-15 00:00:00,1033 N Park Ave,Tucson,AZ,USA,85719,1.98,1,27
169,2011-01-15 00:00:00,796 Dundas Street West,Toronto,ON,Canada,M6J 1V1,1.98,1,29
170,2011-01-16 00:00:00,194A Chain Lake Drive,Halifax,NS,Canada,B3S 1C5,3.96,1,31
171,2011-01-17 00:00:00,"Rua dos Campeões Europeus de Viena, 4350",Porto,,Portugal,,5.94,1,35
172,2011-01-20 00:00:00,"11, Place Bellecour",Lyon,,France,69002,8.91,1,41
173,2011-01-25 00:00:00,C/ San Bernardo 85,Madrid,,Spain,28015,13.86,1,50
174,2011-02-02 00:00:00,Klanova 9/506,Prague,,Czech Republic,14700,0.99,1,5
175,2011-02-15 00:00:00,Rilská 3174/6,Prague,,Czech Republic,14300,1.98,1,6
176,2011-02-15 00:00:00,Grétrystraat 63,Brussels,,Belgium,1000,1.98,1,8
177,2011-02-16 00:00:00,"Rua Dr. Falcão Filho, 155",São Paulo,SP,Brazil,01007-010,3.96,1,10
178,2011-02-17 00:00:00,8210 111 ST NW,Edmonton,AB,Canada,T6G 2C7,5.94,1,14
179,2011-02-20 00:00:00,541 Del Medio Avenue,Mountain View,CA,USA,94040-111,8.91,1,20
180,2011-02-25 00:00:00,796 Dundas Street West,Toronto,ON,Canada,M6J 1V1,13.86,1,29
181,2011-03-05 00:00:00,"68, Rue Jouvence",Dijon,,France,21000,0.99,1,43
182,2011-03-18 00:00:00,Porthaninkatu 9,Helsinki,,Finland,00530,1.98,1,44
183,2011-03-18 00:00:00,3 Chatham Street,Dublin,Dublin,Ireland,,1.98,1,46
184,2011-03-19 00:00:00,Lijnbaansgracht 120bg,Amsterdam,VV,Netherlands,1016,3.96,1,48
185,2011-03-20 00:00:00,202 Hoxton Street,London,,United Kingdom,N1 5LH,5.94,1,52
186,2011-03-23 00:00:00,"12,Community Centre",Delhi,,India,110017,8.91,1,58
187,2011-03-28 00:00:00,Grétrystraat 63,Brussels,,Belgium,1000,13.86,1,8
188,2011-04-05 00:00:00,120 S Orange Ave,Orlando,FL,USA,32801,0.99,1,22
189,2011-04-18 00:00:00,69 Salem Street,Boston,MA,USA,2113,1.98,1,23
190,2011-04-18 00:00:00,319 N. Frances Street,Madison,WI,USA,53703,1.98,1,25
191,2011-04-19 00:00:00,1033 N Park Ave,Tucson,AZ,USA,85719,3.96,1,27
192,2011-04-20 00:00:00,194A Chain Lake Drive,Halifax,NS,Canada,B3S 1C5,5.94,1,31
193,2011-04-23 00:00:00,Berger Straße 10,Frankfurt,,Germany,60316,14.91,1,37
194,2011-04-28 00:00:00,3 Chatham Street,Dublin,Dublin,Ireland,,21.86,1,46
195,2011-05-06 00:00:00,"Av. Brigadeiro Faria Lima, 2170",São José dos Campos,SP,Brazil,12227-000,0.99,1,1
196,2011-05-19 00:00:00,Theodor-Heuss-Straße 34,Stuttgart,,Germany,70174,1.98,1,2
197,2011-05-19 00:00:00,Ullevålsveien 14,Oslo,,Norway,0171,1.98,1,4
198,2011-05-20 00:00:00,Rilská 3174/6,Prague,,Czech Republic,14300,3.96,1,6
199,2011-05-21 00:00:00,"Rua Dr. Falcão Filho, 155",São Paulo,SP,Brazil,01007-010,5.94,1,10
200,2011-05-24 00:00:00,1600 Amphitheatre Parkway,Mountain View,CA,USA,94043-1351,8.91,1,16
201,2011-05-29 00:00:00,319 N. Frances Street,Madison,WI,USA,53703,18.86,1,25
202,2011-06-06 00:00:00,"4, Rue Milton",Paris,,France,75009,1.99,1,39
203,2011-06-19 00:00:00,"8, Rue Hanovre",Paris,,France,75002,2.98,1,40
204,2011-06-19 00:00:00,"9, Place Louis Barthou",Bordeaux,,France,33000,3.98,1,42
205,2011-06-20 00:00:00,Porthaninkatu 9,Helsinki,,Finland,00530,7.96,1,44
206,2011-06-21 00:00:00,Lijnbaansgracht 120bg,Amsterdam,VV,Netherlands,1016,8.94,1,48
207,2011-06-24 00:00:00,110 Raeburn Pl,Edinburgh ,,United Kingdom,EH4 1HH,8.91,1,54
208,2011-06-29 00:00:00,Ullevålsveien 14,Oslo,,Norway,0171,15.86,1,4
209,2011-07-07 00:00:00,627 Broadway,New York,NY,USA,10012-2612,0.99,1,18
210,2011-07-20 00:00:00,1 Infinite Loop,Cupertino,CA,USA,95014,1.98,1,19
211,2011-07-20 00:00:00,801 W 4th Street,Reno,NV,USA,89503,1.98,1,21
212,2011-07-21 00:00:00,69 Salem Street,Boston,MA,USA,2113,3.96,1,23
213,2011-07-22 00:00:00,1033 N Park Ave,Tucson,AZ,USA,85719,5.94,1,27
214,2011-07-25 00:00:00,5112 48 Street,Yellowknife,NT,Canada,X1A 1N6,8.91,1,33
215,2011-07-30 00:00:00,"9, Place Louis Barthou",Bordeaux,,France,33000,13.86,1,42
216,2011-08-07 00:00:00,307 Macacha Güemes,Buenos Aires,,Argentina,1106,0.99,1,56
217,2011-08-20 00:00:00,"Calle Lira, 198",Santiago,,Chile,,1.98,1,57
218,2011-08-20 00:00:00,"3,Raj Bhavan Road",Bangalore,,India,560001,1.98,1,59
219,2011-08-21 00:00:00,Theodor-Heuss-Straße 34,Stuttgart,,Germany,70174,3.96,1,2
220,2011-08-22 00:00:00,Rilská 3174/6,Prague,,Czech Republic,14300,5.94,1,6
221,2011-08-25 00:00:00,"Praça Pio X, 119",Rio de Janeiro,RJ,Brazil,20040-020,8.91,1,12
222,2011-08-30 00:00:00,801 W 4th Street,Reno,NV,USA,89503,13.86,1,21
223,2011-09-07 00:00:00,"Rua dos Campeões Europeus de Viena, 4350",Porto,,Portugal,,0.99,1,35
224,2011-09-20 00:00:00,Tauentzienstraße 8,Berlin,,Germany,10789,1.98,1,36
225,2011-09-20 00:00:00,Barbarossastraße 19,Berlin,,Germany,10779,1.98,1,38
226,2011-09-21 00:00:00,"8, Rue Hanovre",Paris,,France,75002,3.96,1,40
227,2011-09-22 00:00:00,Porthaninkatu 9,Helsinki,,Finland,00530,5.94,1,44
228,2011-09-25 00:00:00,C/ San Bernardo 85,Madrid,,Spain,28015,8.91,1,50
229,2011-09-30 00:00:00,"3,Raj Bhavan Road",Bangalore,,India,560001,13.86,1,59
230,2011-10-08 00:00:00,8210 111 ST NW,Edmonton,AB,Canada,T6G 2C7,0.99,1,14
231,2011-10-21 00:00:00,700 W Pender Street,Vancouver,BC,Canada,V6C 1G8,1.98,1,15
232,2011-10-21 00:00:00,1 Microsoft Way,Redmond,WA,USA,98052-8300,1.98,1,17
233,2011-10-22 00:00:00,1 Infinite Loop,Cupertino,CA,USA,95014,3.96,1,19
234,2011-10-23 00:00:00,69 Salem Street,Boston,MA,USA,2113,5.94,1,23
235,2011-10-26 00:00:00,796 Dundas Street West,Toronto,ON,Canada,M6J 1V1,8.91,1,29
236,2011-10-31 00:00:00,Barbarossastraße 19,Berlin,,Germany,10779,13.86,1,38
237,2011-11-08 00:00:00,202 Hoxton Street,London,,United Kingdom,N1 5LH,0.99,1,52
238,2011-11-21 00:00:00,113 Lupus St,London,,United Kingdom,SW1V 3EN,1.98,1,53
239,2011-11-21 00:00:00,421 Bourke Street,Sidney,NSW,Australia,2010,1.98,1,55
240,2011-11-22 00:00:00,"Calle Lira, 198",Santiago,,Chile,,3.96,1,57
241,2011-11-23 00:00:00,Theodor-Heuss-Straße 34,Stuttgart,,Germany,70174,5.94,1,2
242,2011-11-26 00:00:00,Grétrystraat 63,Brussels,,Belgium,1000,8.91,1,8
243,2011-12-01 00:00:00,1 Microsoft Way,Redmond,WA,USA,98052-8300,13.86,1,17
244,2011-12-09 00:00:00,194A Chain Lake Drive,Halifax,NS,Canada,B3S 1C5,0.99,1,31
245,2011-12-22 00:00:00,696 Osborne Street,Winnipeg,MB,Canada,R3L 2B9,1.98,1,32
246,2011-12-22 00:00:00,Rua da Assunção 53,Lisbon,,Portugal,,1.98,1,34
247,2011-12-23 00:00:00,Tauentzienstraße 8,Berlin,,Germany,10789,3.96,1,36
248,2011-12-24 00:00:00,"8, Rue Hanovre",Paris,,France,75002,5.94,1,40
249,2011-12-27 00:00:00,3 Chatham Street,Dublin,Dublin,Ireland,,8.91,1,46
250,2012-01-01 00:00:00,421 Bourke Street,Sidney,NSW,Australia,2010,13.86,1,55
251,2012-01-09 00:00:00,"Rua Dr. Falcão Filho, 155",São Paulo,SP,Brazil,01007-010,0.99,1,10
252,2012-01-22 00:00:00,"Av. Paulista, 2022",São Paulo,SP,Brazil,01310-200,1.98,1,11
253,2012-01-22 00:00:00,Qe 7 Bloco G,Brasília,DF,Brazil,71020-677,1.98,1,13
254,2012-01-23 00:00:00,700 W Pender Street,Vancouver,BC,Canada,V6C 1G8,3.96,1,15
255,2012-01-24 00:00:00,1 Infinite Loop,Cupertino,CA,USA,95014,5.94,1,19
256,2012-01-27 00:00:00,319 N. Frances Street,Madison,WI,USA,53703,8.91,1,25
257,2012-02-01 00:00:00,Rua da Assunção 53,Lisbon,,Portugal,,13.86,1,34
258,2012-02-09 00:00:00,Lijnbaansgracht 120bg,Amsterdam,VV,Netherlands,1016,0.99,1,48
259,2012-02-22 00:00:00,Ordynacka 10,Warsaw,,Poland,00-358,1.98,1,49
260,2012-02-22 00:00:00,Celsiusg. 9,Stockholm,,Sweden,11230,1.98,1,51
261,2012-02-23 00:00:00,113 Lupus St,London,,United Kingdom,SW1V 3EN,3.96,1,53
262,2012-02-24 00:00:00,"Calle Lira, 198",Santiago,,Chile,,5.94,1,57
263,2012-02-27 00:00:00,Ullevålsveien 14,Oslo,,Norway,0171,8.91,1,4
264,2012-03-03 00:00:00,Qe 7 Bloco G,Brasília,DF,Brazil,71020-677,13.86,1,13
265,2012-03-11 00:00:00,1033 N Park Ave,Tucson,AZ,USA,85719,0.99,1,27
266,2012-03-24 00:00:00,302 S 700 E,Salt Lake City,UT,USA,84102,1.98,1,28
267,2012-03-24 00:00:00,230 Elgin Street,Ottawa,ON,Canada,K2P 1L7,1.98,1,30
268,2012-03-25 00:00:00,696 Osborne Street,Winnipeg,MB,Canada,R3L 2B9,3.96,1,32
269,2012-03-26 00:00:00,Tauentzienstraße 8,Berlin,,Germany,10789,5.94,1,36
270,2012-03-29 00:00:00,"9, Place Louis Barthou",Bordeaux,,France,33000,8.91,1,42
271,2012-04-03 00:00:00,Celsiusg. 9,Stockholm,,Sweden,11230,13.86,1,51
272,2012-04-11 00:00:00,Rilská 3174/6,Prague,,Czech Republic,14300,0.99,1,6
273,2012-04-24 00:00:00,"Rotenturmstraße 4, 1010 Innere Stadt",Vienne,,Austria,1010,1.98,1,7
274,2012-04-24 00:00:00,Sønder Boulevard 51,Copenhagen,,Denmark,1720,1.98,1,9
275,2012-04-25 00:00:00,"Av. Paulista, 2022",São Paulo,SP,Brazil,01310-200,3.96,1,11
276,2012-04-26 00:00:00,700 W Pender Street,Vancouver,BC,Canada,V6C 1G8,5.94,1,15
277,2012-04-29 00:00:00,801 W 4th Street,Reno,NV,USA,89503,8.91,1,21
278,2012-05-04 00:00:00,230 Elgin Street,Ottawa,ON,Canada,K2P 1L7,13.86,1,30
279,2012-05-12 00:00:00,Porthaninkatu 9,Helsinki,,Finland,00530,0.99,1,44
280,2012-05-25 00:00:00,Erzsébet krt. 58.,Budapest,,Hungary,H-1073,1.98,1,45
281,2012-05-25 00:00:00,"Via Degli Scipioni, 43",Rome,RM,Italy,00192,1.98,1,47
282,2012-05-26 00:00:00,Ordynacka 10,Warsaw,,Poland,00-358,3.96,1,49
283,2012-05-27 00:00:00,113 Lupus St,London,,United Kingdom,SW1V 3EN,5.94,1,53
284,2012-05-30 00:00:00,"3,Raj Bhavan Road",Bangalore,,India,560001,8.91,1,59
285,2012-06-04 00:00:00,Sønder Boulevard 51,Copenhagen,,Denmark,1720,13.86,1,9
286,2012-06-12 00:00:00,69 Salem Street,Boston,MA,USA,2113,0.99,1,23
287,2012-06-25 00:00:00,162 E Superior Street,Chicago,IL,USA,60611,1.98,1,24
288,2012-06-25 00:00:00,2211 W Berry Street,Fort Worth,TX,USA,76110,1.98,1,26
289,2012-06-26 00:00:00,302 S 700 E,Salt Lake City,UT,USA,84102,3.96,1,28
290,2012-06-27 00:00:00,696 Osborne Street,Winnipeg,MB,Canada,R3L 2B9,5.94,1,32
291,2012-06-30 00:00:00,Barbarossastraße 19,Berlin,,Germany,10779,8.91,1,38
292,2012-07-05 00:00:00,"Via Degli Scipioni, 43",Rome,RM,Italy,00192,13.86,1,47
293,2012-07-13 00:00:00,Theodor-Heuss-Straße 34,Stuttgart,,Germany,70174,0.99,1,2
294,2012-07-26 00:00:00,1498 rue Bélanger,Montréal,QC,Canada,H2G 1A7,1.98,1,3
295,2012-07-26 00:00:00,Klanova 9/506,Prague,,Czech Republic,14700,1.98,1,5
296,2012-07-27 00:00:00,"Rotenturmstraße 4, 1010 Innere Stadt",Vienne,,Austria,1010,3.96,1,7
297,2012-07-28 00:00:00,"Av. Paulista, 2022",São Paulo,SP,Brazil,01310-200,5.94,1,11
298,2012-07-31 00:00:00,1 Microsoft Way,Redmond,WA,USA,98052-8300,10.91,1,17
299,2012-08-05 00:00:00,2211 W Berry Street,Fort Worth,TX,USA,76110,23.86,1,26
300,2012-08-13 00:00:00,"8, Rue Hanovre",Paris,,France,75002,0.99,1,40
301,2012-08-26 00:00:00,"11, Place Bellecour",Lyon,,France,69002,1.98,1,41
302,2012-08-26 00:00:00,"68, Rue Jouvence",Dijon,,France,21000,1.98,1,43
303,2012-08-27 00:00:00,Erzsébet krt. 58.,Budapest,,Hungary,H-1073,3.96,1,45
304,2012-08-28 00:00:00,Ordynacka 10,Warsaw,,Poland,00-358,5.94,1,49
305,2012-08-31 00:00:00,421 Bourke Street,Sidney,NSW,Australia,2010,8.91,1,55
306,2012-09-05 00:00:00,Klanova 9/506,Prague,,Czech Republic,14700,16.86,1,5
307,2012-09-13 00:00:00,1 Infinite Loop,Cupertino,CA,USA,95014,1.99,1,19
308,2012-09-26 00:00:00,541 Del Medio Avenue,Mountain View,CA,USA,94040-111,3.98,1,20
309,2012-09-26 00:00:00,120 S Orange Ave,Orlando,FL,USA,32801,3.98,1,22
310,2012-09-27 00:00:00,162 E Superior Street,Chicago,IL,USA,60611,7.96,1,24
311,2012-09-28 00:00:00,302 S 700 E,Salt Lake City,UT,USA,84102,11.94,1,28
312,2012-10-01 00:00:00,Rua da Assunção 53,Lisbon,,Portugal,,10.91,1,34
313,2012-10-06 00:00:00,"68, Rue Jouvence",Dijon,,France,21000,16.86,1,43
314,2012-10-14 00:00:00,"Calle Lira, 198",Santiago,,Chile,,0.99,1,57
315,2012-10-27 00:00:00,"12,Community Centre",Delhi,,India,110017,1.98,1,58
316,2012-10-27 00:00:00,"Av. Brigadeiro Faria Lima, 2170",São José dos Campos,SP,Brazil,12227-000,1.98,1,1
317,2012-10-28 00:00:00,1498 rue Bélanger,Montréal,QC,Canada,H2G 1A7,3.96,1,3
318,2012-10-29 00:00:00,"Rotenturmstraße 4, 1010 Innere Stadt",Vienne,,Austria,1010,5.94,1,7
319,2012-11-01 00:00:00,Qe 7 Bloco G,Brasília,DF,Brazil,71020-677,8.91,1,13
320,2012-11-06 00:00:00,120 S Orange Ave,Orlando,FL,USA,32801,13.86,1,22
321,2012-11-14 00:00:00,Tauentzienstraße 8,Berlin,,Germany,10789,0.99,1,36
322,2012-11-27 00:00:00,Berger Straße 10,Frankfurt,,Germany,60316,1.98,1,37
323,2012-11-27 00:00:00,"4, Rue Milton",Paris,,France,75009,1.98,1,39
324,2012-11-28 00:00:00,"11, Place Bellecour",Lyon,,France,69002,3.96,1,41
325,2012-11-29 00:00:00,Erzsébet krt. 58.,Budapest,,Hungary,H-1073,5.94,1,45
326,2012-12-02 00:00:00,Celsiusg. 9,Stockholm,,Sweden,11230,8.91,1,51
327,2012-12-07 00:00:00,"Av. Brigadeiro Faria Lima, 2170",São José dos Campos,SP,Brazil,12227-000,13.86,1,1
328,2012-12-15 00:00:00,700 W Pender Street,Vancouver,BC,Canada,V6C 1G8,0.99,1,15
329,2012-12-28 00:00:00,1600 Amphitheatre Parkway,Mountain View,CA,USA,94043-1351,1.98,1,16
330,2012-12-28 00:00:00,627 Broadway,New York,NY,USA,10012-2612,1.98,1,18
331,2012-12-29 00:00:00,541 Del Medio Avenue,Mountain View,CA,USA,94040-111,3.96,1,20
332,2012-12-30 00:00:00,162 E Superior Street,Chicago,IL,USA,60611,5.94,1,24
333,2013-01-02 00:00:00,230 Elgin Street,Ottawa,ON,Canada,K2P 1L7,8.91,1,30
334,2013-01-07 00:00:00,"4, Rue Milton",Paris,,France,75009,13.86,1,39
335,2013-01-15 00:00:00,113 Lupus St,London,,United Kingdom,SW1V 3EN,0.99,1,53
336,2013-01-28 00:00:00,110 Raeburn Pl,Edinburgh ,,United Kingdom,EH4 1HH,1.98,1,54
337,2013-01-28 00:00:00,307 Macacha Güemes,Buenos Aires,,Argentina,1106,1.98,1,56
338,2013-01-29 00:00:00,"12,Community Centre",Delhi,,India,110017,3.96,1,58
339,2013-01-30 00:00:00,1498 rue Bélanger,Montréal,QC,Canada,H2G 1A7,5.94,1,3
340,2013-02-02 00:00:00,Sønder Boulevard 51,Copenhagen,,Denmark,1720,8.91,1,9
341,2013-02-07 00:00:00,627 Broadway,New York,NY,USA,10012-2612,13.86,1,18
342,2013-02-15 00:00:00,696 Osborne Street,Winnipeg,MB,Canada,R3L 2B9,0.99,1,32
343,2013-02-28 00:00:00,5112 48 Street,Yellowknife,NT,Canada,X1A 1N6,1.98,1,33
344,2013-02-28 00:00:00,"Rua dos Campeões Europeus de Viena, 4350",Porto,,Portugal,,1.98,1,35
345,2013-03-01 00:00:00,Berger Straße 10,Frankfurt,,Germany,60316,3.96,1,37
346,2013-03-02 00:00:00,"11, Place Bellecour",Lyon,,France,69002,5.94,1,41
347,2013-03-05 00:00:00,"Via Degli Scipioni, 43",Rome,RM,Italy,00192,8.91,1,47
348,2013-03-10 00:00:00,307 Macacha Güemes,Buenos Aires,,Argentina,1106,13.86,1,56
349,2013-03-18 00:00:00,"Av. Paulista, 2022",São Paulo,SP,Brazil,01310-200,0.99,1,11
350,2013-03-31 00:00:00,"Praça Pio X, 119",Rio de Janeiro,RJ,Brazil,20040-020,1.98,1,12
351,2013-03-31 00:00:00,8210 111 ST NW,Edmonton,AB,Canada,T6G 2C7,1.98,1,14
352,2013-04-01 00:00:00,1600 Amphitheatre Parkway,Mountain View,CA,USA,94043-1351,3.96,1,16
353,2013-04-02 00:00:00,541 Del Medio Avenue,Mountain View,CA,USA,94040-111,5.94,1,20
354,2013-04-05 00:00:00,2211 W Berry Street,Fort Worth,TX,USA,76110,8.91,1,26
355,2013-04-10 00:00:00,"Rua dos Campeões Europeus de Viena, 4350",Porto,,Portugal,,13.86,1,35
356,2013-04-18 00:00:00,Ordynacka 10,Warsaw,,Poland,00-358,0.99,1,49
357,2013-05-01 00:00:00,C/ San Bernardo 85,Madrid,,Spain,28015,1.98,1,50
358,2013-05-01 00:00:00,202 Hoxton Street,London,,United Kingdom,N1 5LH,1.98,1,52
359,2013-05-02 00:00:00,110 Raeburn Pl,Edinburgh ,,United Kingdom,EH4 1HH,3.96,1,54
360,2013-05-03 00:00:00,"12,Community Centre",Delhi,,India,110017,5.94,1,58
361,2013-05-06 00:00:00,Klanova 9/506,Prague,,Czech Republic,14700,8.91,1,5
362,2013-05-11 00:00:00,8210 111 ST NW,Edmonton,AB,Canada,T6G 2C7,13.86,1,14
363,2013-05-19 00:00:00,302 S 700 E,Salt Lake City,UT,USA,84102,0.99,1,28
364,2013-06-01 00:00:00,796 Dundas Street West,Toronto,ON,Canada,M6J 1V1,1.98,1,29
365,2013-06-01 00:00:00,194A Chain Lake Drive,Halifax,NS,Canada,B3S 1C5,1.98,1,31
366,2013-06-02 00:00:00,5112 48 Street,Yellowknife,NT,Canada,X1A 1N6,3.96,1,33
367,2013-06-03 00:00:00,Berger Straße 10,Frankfurt,,Germany,60316,5.94,1,37
368,2013-06-06 00:00:00,"68, Rue Jouvence",Dijon,,France,21000,8.91,1,43
369,2013-06-11 00:00:00,202 Hoxton Street,London,,United Kingdom,N1 5LH,13.86,1,52
370,2013-06-19 00:00:00,"Rotenturmstraße 4, 1010 Innere Stadt",Vienne,,Austria,1010,0.99,1,7
371,2013-07-02 00:00:00,Grétrystraat 63,Brussels,,Belgium,1000,1.98,1,8
372,2013-07-02 00:00:00,"Rua Dr. Falcão Filho, 155",São Paulo,SP,Brazil,01007-010,1.98,1,10
373,2013-07-03 00:00:00,"Praça Pio X, 119",Rio de Janeiro,RJ,Brazil,20040-020,3.96,1,12
374,2013-07-04 00:00:00,1600 Amphitheatre Parkway,Mountain View,CA,USA,94043-1351,5.94,1,16
375,2013-07-07 00:00:00,120 S Orange Ave,Orlando,FL,USA,32801,8.91,1,22
376,2013-07-12 00:00:00,194A Chain Lake Drive,Halifax,NS,Canada,B3S 1C5,13.86,1,31
377,2013-07-20 00:00:00,Erzsébet krt. 58.,Budapest,,Hungary,H-1073,0.99,1,45
378,2013-08-02 00:00:00,3 Chatham Street,Dublin,Dublin,Ireland,,1.98,1,46
379,2013-08-02 00:00:00,Lijnbaansgracht 120bg,Amsterdam,VV,Netherlands,1016,1.98,1,48
380,2013-08-03 00:00:00,C/ San Bernardo 85,Madrid,,Spain,28015,3.96,1,50
381,2013-08-04 00:00:00,110 Raeburn Pl,Edinburgh ,,United Kingdom,EH4 1HH,5.94,1,54
382,2013-08-07 00:00:00,"Av. Brigadeiro Faria Lima, 2170",São José dos Campos,SP,Brazil,12227-000,8.91,1,1
383,2013-08-12 00:00:00,"Rua Dr. Falcão Filho, 155",São Paulo,SP,Brazil,01007-010,13.86,1,10
384,2013-08-20 00:00:00,162 E Superior Street,Chicago,IL,USA,60611,0.99,1,24
385,2013-09-02 00:00:00,319 N. Frances Street,Madison,WI,USA,53703,1.98,1,25
386,2013-09-02 00:00:00,1033 N Park Ave,Tucson,AZ,USA,85719,1.98,1,27
387,2013-09-03 00:00:00,796 Dundas Street West,Toronto,ON,Canada,M6J 1V1,3.96,1,29
388,2013-09-04 00:00:00,5112 48 Street,Yellowknife,NT,Canada,X1A 1N6,5.94,1,33
389,2013-09-07 00:00:00,"4, Rue Milton",Paris,,France,75009,8.91,1,39
390,2013-09-12 00:00:00,Lijnbaansgracht 120bg,Amsterdam,VV,Netherlands,1016,13.86,1,48
391,2013-09-20 00:00:00,1498 rue Bélanger,Montréal,QC,Canada,H2G 1A7,0.99,1,3
392,2013-10-03 00:00:00,Ullevålsveien 14,Oslo,,Norway,0171,1.98,1,4
393,2013-10-03 00:00:00,Rilská 3174/6,Prague,,Czech Republic,14300,1.98,1,6
394,2013-10-04 00:00:00,Grétrystraat 63,Brussels,,Belgium,1000,3.96,1,8
395,2013-10-05 00:00:00,"Praça Pio X, 119",Rio de Janeiro,RJ,Brazil,20040-020,5.94,1,12
396,2013-10-08 00:00:00,627 Broadway,New York,NY,USA,10012-2612,8.91,1,18
397,2013-10-13 00:00:00,1033 N Park Ave,Tucson,AZ,USA,85719,13.86,1,27
398,2013-10-21 00:00:00,"11, Place Bellecour",Lyon,,France,69002,0.99,1,41
399,2013-11-03 00:00:00,"9, Place Louis Barthou",Bordeaux,,France,33000,1.98,1,42
400,2013-11-03 00:00:00,Porthaninkatu 9,Helsinki,,Finland,00530,1.98,1,44
401,2013-11-04 00:00:00,3 Chatham Street,Dublin,Dublin,Ireland,,3.96,1,46
402,2013-11-05 00:00:00,C/ San Bernardo 85,Madrid,,Spain,28015,5.94,1,50
403,2013-11-08 00:00:00,307 Macacha Güemes,Buenos Aires,,Argentina,1106,8.91,1,56
404,2013-11-13 00:00:00,Rilská 3174/6,Prague,,Czech Republic,14300,25.86,1,6
405,2013-11-21 00:00:00,541 Del Medio Avenue,Mountain View,CA,USA,94040-111,0.99,1,20
406,2013-12-04 00:00:00,801 W 4th Street,Reno,NV,USA,89503,1.98,1,21
407,2013-12-04 00:00:00,69 Salem Street,Boston,MA,USA,2113,1.98,1,23
408,2013-12-05 00:00:00,319 N. Frances Street,Madison,WI,USA,53703,3.96,1,25
409,2013-12-06 00:00:00,796 Dundas Street West,Toronto,ON,Canada,M6J 1V1,5.94,1,29
410,2013-12-09 00:00:00,"Rua dos Campeões Europeus de Viena, 4350",Porto,,Portugal,,8.91,1,35
411,2013-12-14 00:00:00,Porthaninkatu 9,Helsinki,,Finland,00530,13.86,1,44
412,2013-12-22 00:00:00,"12,Community Centre",Delhi,,India,110017,1.99,1,58
ID,invoiceDate,total,status,customer_ID
1,2009-01-01 00:00:00,1.98,1,2
2,2009-01-02 00:00:00,3.96,1,4
3,2009-01-03 00:00:00,5.94,1,8
4,2009-01-06 00:00:00,8.91,1,14
5,2009-01-11 00:00:00,13.86,1,23
6,2009-01-19 00:00:00,0.99,1,37
7,2009-02-01 00:00:00,1.98,1,38
8,2009-02-01 00:00:00,1.98,1,40
9,2009-02-02 00:00:00,3.96,1,42
10,2009-02-03 00:00:00,5.94,1,46
11,2009-02-06 00:00:00,8.91,1,52
12,2009-02-11 00:00:00,13.86,1,2
13,2009-02-19 00:00:00,0.99,1,16
14,2009-03-04 00:00:00,1.98,1,17
15,2009-03-04 00:00:00,1.98,1,19
16,2009-03-05 00:00:00,3.96,1,21
17,2009-03-06 00:00:00,5.94,1,25
18,2009-03-09 00:00:00,8.91,1,31
19,2009-03-14 00:00:00,13.86,1,40
20,2009-03-22 00:00:00,0.99,1,54
21,2009-04-04 00:00:00,1.98,1,55
22,2009-04-04 00:00:00,1.98,1,57
23,2009-04-05 00:00:00,3.96,1,59
24,2009-04-06 00:00:00,5.94,1,4
25,2009-04-09 00:00:00,8.91,1,10
26,2009-04-14 00:00:00,13.86,1,19
27,2009-04-22 00:00:00,0.99,1,33
28,2009-05-05 00:00:00,1.98,1,34
29,2009-05-05 00:00:00,1.98,1,36
30,2009-05-06 00:00:00,3.96,1,38
31,2009-05-07 00:00:00,5.94,1,42
32,2009-05-10 00:00:00,8.91,1,48
33,2009-05-15 00:00:00,13.86,1,57
34,2009-05-23 00:00:00,0.99,1,12
35,2009-06-05 00:00:00,1.98,1,13
36,2009-06-05 00:00:00,1.98,1,15
37,2009-06-06 00:00:00,3.96,1,17
38,2009-06-07 00:00:00,5.94,1,21
39,2009-06-10 00:00:00,8.91,1,27
40,2009-06-15 00:00:00,13.86,1,36
41,2009-06-23 00:00:00,0.99,1,50
42,2009-07-06 00:00:00,1.98,1,51
43,2009-07-06 00:00:00,1.98,1,53
44,2009-07-07 00:00:00,3.96,1,55
45,2009-07-08 00:00:00,5.94,1,59
46,2009-07-11 00:00:00,8.91,1,6
47,2009-07-16 00:00:00,13.86,1,15
48,2009-07-24 00:00:00,0.99,1,29
49,2009-08-06 00:00:00,1.98,1,30
50,2009-08-06 00:00:00,1.98,1,32
51,2009-08-07 00:00:00,3.96,1,34
52,2009-08-08 00:00:00,5.94,1,38
53,2009-08-11 00:00:00,8.91,1,44
54,2009-08-16 00:00:00,13.86,1,53
55,2009-08-24 00:00:00,0.99,1,8
56,2009-09-06 00:00:00,1.98,1,9
57,2009-09-06 00:00:00,1.98,1,11
58,2009-09-07 00:00:00,3.96,1,13
59,2009-09-08 00:00:00,5.94,1,17
60,2009-09-11 00:00:00,8.91,1,23
61,2009-09-16 00:00:00,13.86,1,32
62,2009-09-24 00:00:00,0.99,1,46
63,2009-10-07 00:00:00,1.98,1,47
64,2009-10-07 00:00:00,1.98,1,49
65,2009-10-08 00:00:00,3.96,1,51
66,2009-10-09 00:00:00,5.94,1,55
67,2009-10-12 00:00:00,8.91,1,2
68,2009-10-17 00:00:00,13.86,1,11
69,2009-10-25 00:00:00,0.99,1,25
70,2009-11-07 00:00:00,1.98,1,26
71,2009-11-07 00:00:00,1.98,1,28
72,2009-11-08 00:00:00,3.96,1,30
73,2009-11-09 00:00:00,5.94,1,34
74,2009-11-12 00:00:00,8.91,1,40
75,2009-11-17 00:00:00,13.86,1,49
76,2009-11-25 00:00:00,0.99,1,4
77,2009-12-08 00:00:00,1.98,1,5
78,2009-12-08 00:00:00,1.98,1,7
79,2009-12-09 00:00:00,3.96,1,9
80,2009-12-10 00:00:00,5.94,1,13
81,2009-12-13 00:00:00,8.91,1,19
82,2009-12-18 00:00:00,13.86,1,28
83,2009-12-26 00:00:00,0.99,1,42
84,2010-01-08 00:00:00,1.98,1,43
85,2010-01-08 00:00:00,1.98,1,45
86,2010-01-09 00:00:00,3.96,1,47
87,2010-01-10 00:00:00,6.94,1,51
88,2010-01-13 00:00:00,17.91,1,57
89,2010-01-18 00:00:00,18.86,1,7
90,2010-01-26 00:00:00,0.99,1,21
91,2010-02-08 00:00:00,1.98,1,22
92,2010-02-08 00:00:00,1.98,1,24
93,2010-02-09 00:00:00,3.96,1,26
94,2010-02-10 00:00:00,5.94,1,30
95,2010-02-13 00:00:00,8.91,1,36
96,2010-02-18 00:00:00,21.86,1,45
97,2010-02-26 00:00:00,1.99,1,59
98,2010-03-11 00:00:00,3.98,1,1
99,2010-03-11 00:00:00,3.98,1,3
100,2010-03-12 00:00:00,3.96,1,5
101,2010-03-13 00:00:00,5.94,1,9
102,2010-03-16 00:00:00,9.91,1,15
103,2010-03-21 00:00:00,15.86,1,24
104,2010-03-29 00:00:00,0.99,1,38
105,2010-04-11 00:00:00,1.98,1,39
106,2010-04-11 00:00:00,1.98,1,41
107,2010-04-12 00:00:00,3.96,1,43
108,2010-04-13 00:00:00,5.94,1,47
109,2010-04-16 00:00:00,8.91,1,53
110,2010-04-21 00:00:00,13.86,1,3
111,2010-04-29 00:00:00,0.99,1,17
112,2010-05-12 00:00:00,1.98,1,18
113,2010-05-12 00:00:00,1.98,1,20
114,2010-05-13 00:00:00,3.96,1,22
115,2010-05-14 00:00:00,5.94,1,26
116,2010-05-17 00:00:00,8.91,1,32
117,2010-05-22 00:00:00,13.86,1,41
118,2010-05-30 00:00:00,0.99,1,55
119,2010-06-12 00:00:00,1.98,1,56
120,2010-06-12 00:00:00,1.98,1,58
121,2010-06-13 00:00:00,3.96,1,1
122,2010-06-14 00:00:00,5.94,1,5
123,2010-06-17 00:00:00,8.91,1,11
124,2010-06-22 00:00:00,13.86,1,20
125,2010-06-30 00:00:00,0.99,1,34
126,2010-07-13 00:00:00,1.98,1,35
127,2010-07-13 00:00:00,1.98,1,37
128,2010-07-14 00:00:00,3.96,1,39
129,2010-07-15 00:00:00,5.94,1,43
130,2010-07-18 00:00:00,8.91,1,49
131,2010-07-23 00:00:00,13.86,1,58
132,2010-07-31 00:00:00,0.99,1,13
133,2010-08-13 00:00:00,1.98,1,14
134,2010-08-13 00:00:00,1.98,1,16
135,2010-08-14 00:00:00,3.96,1,18
136,2010-08-15 00:00:00,5.94,1,22
137,2010-08-18 00:00:00,8.91,1,28
138,2010-08-23 00:00:00,13.86,1,37
139,2010-08-31 00:00:00,0.99,1,51
140,2010-09-13 00:00:00,1.98,1,52
141,2010-09-13 00:00:00,1.98,1,54
142,2010-09-14 00:00:00,3.96,1,56
143,2010-09-15 00:00:00,5.94,1,1
144,2010-09-18 00:00:00,8.91,1,7
145,2010-09-23 00:00:00,13.86,1,16
146,2010-10-01 00:00:00,0.99,1,30
147,2010-10-14 00:00:00,1.98,1,31
148,2010-10-14 00:00:00,1.98,1,33
149,2010-10-15 00:00:00,3.96,1,35
150,2010-10-16 00:00:00,5.94,1,39
151,2010-10-19 00:00:00,8.91,1,45
152,2010-10-24 00:00:00,13.86,1,54
153,2010-11-01 00:00:00,0.99,1,9
154,2010-11-14 00:00:00,1.98,1,10
155,2010-11-14 00:00:00,1.98,1,12
156,2010-11-15 00:00:00,3.96,1,14
157,2010-11-16 00:00:00,5.94,1,18
158,2010-11-19 00:00:00,8.91,1,24
159,2010-11-24 00:00:00,13.86,1,33
160,2010-12-02 00:00:00,0.99,1,47
161,2010-12-15 00:00:00,1.98,1,48
162,2010-12-15 00:00:00,1.98,1,50
163,2010-12-16 00:00:00,3.96,1,52
164,2010-12-17 00:00:00,5.94,1,56
165,2010-12-20 00:00:00,8.91,1,3
166,2010-12-25 00:00:00,13.86,1,12
167,2011-01-02 00:00:00,0.99,1,26
168,2011-01-15 00:00:00,1.98,1,27
169,2011-01-15 00:00:00,1.98,1,29
170,2011-01-16 00:00:00,3.96,1,31
171,2011-01-17 00:00:00,5.94,1,35
172,2011-01-20 00:00:00,8.91,1,41
173,2011-01-25 00:00:00,13.86,1,50
174,2011-02-02 00:00:00,0.99,1,5
175,2011-02-15 00:00:00,1.98,1,6
176,2011-02-15 00:00:00,1.98,1,8
177,2011-02-16 00:00:00,3.96,1,10
178,2011-02-17 00:00:00,5.94,1,14
179,2011-02-20 00:00:00,8.91,1,20
180,2011-02-25 00:00:00,13.86,1,29
181,2011-03-05 00:00:00,0.99,1,43
182,2011-03-18 00:00:00,1.98,1,44
183,2011-03-18 00:00:00,1.98,1,46
184,2011-03-19 00:00:00,3.96,1,48
185,2011-03-20 00:00:00,5.94,1,52
186,2011-03-23 00:00:00,8.91,1,58
187,2011-03-28 00:00:00,13.86,1,8
188,2011-04-05 00:00:00,0.99,1,22
189,2011-04-18 00:00:00,1.98,1,23
190,2011-04-18 00:00:00,1.98,1,25
191,2011-04-19 00:00:00,3.96,1,27
192,2011-04-20 00:00:00,5.94,1,31
193,2011-04-23 00:00:00,14.91,1,37
194,2011-04-28 00:00:00,21.86,1,46
195,2011-05-06 00:00:00,0.99,1,1
196,2011-05-19 00:00:00,1.98,1,2
197,2011-05-19 00:00:00,1.98,1,4
198,2011-05-20 00:00:00,3.96,1,6
199,2011-05-21 00:00:00,5.94,1,10
200,2011-05-24 00:00:00,8.91,1,16
201,2011-05-29 00:00:00,18.86,1,25
202,2011-06-06 00:00:00,1.99,1,39
203,2011-06-19 00:00:00,2.98,1,40
204,2011-06-19 00:00:00,3.98,1,42
205,2011-06-20 00:00:00,7.96,1,44
206,2011-06-21 00:00:00,8.94,1,48
207,2011-06-24 00:00:00,8.91,1,54
208,2011-06-29 00:00:00,15.86,1,4
209,2011-07-07 00:00:00,0.99,1,18
210,2011-07-20 00:00:00,1.98,1,19
211,2011-07-20 00:00:00,1.98,1,21
212,2011-07-21 00:00:00,3.96,1,23
213,2011-07-22 00:00:00,5.94,1,27
214,2011-07-25 00:00:00,8.91,1,33
215,2011-07-30 00:00:00,13.86,1,42
216,2011-08-07 00:00:00,0.99,1,56
217,2011-08-20 00:00:00,1.98,1,57
218,2011-08-20 00:00:00,1.98,1,59
219,2011-08-21 00:00:00,3.96,1,2
220,2011-08-22 00:00:00,5.94,1,6
221,2011-08-25 00:00:00,8.91,1,12
222,2011-08-30 00:00:00,13.86,1,21
223,2011-09-07 00:00:00,0.99,1,35
224,2011-09-20 00:00:00,1.98,1,36
225,2011-09-20 00:00:00,1.98,1,38
226,2011-09-21 00:00:00,3.96,1,40
227,2011-09-22 00:00:00,5.94,1,44
228,2011-09-25 00:00:00,8.91,1,50
229,2011-09-30 00:00:00,13.86,1,59
230,2011-10-08 00:00:00,0.99,1,14
231,2011-10-21 00:00:00,1.98,1,15
232,2011-10-21 00:00:00,1.98,1,17
233,2011-10-22 00:00:00,3.96,1,19
234,2011-10-23 00:00:00,5.94,1,23
235,2011-10-26 00:00:00,8.91,1,29
236,2011-10-31 00:00:00,13.86,1,38
237,2011-11-08 00:00:00,0.99,1,52
238,2011-11-21 00:00:00,1.98,1,53
239,2011-11-21 00:00:00,1.98,1,55
240,2011-11-22 00:00:00,3.96,1,57
241,2011-11-23 00:00:00,5.94,1,2
242,2011-11-26 00:00:00,8.91,1,8
243,2011-12-01 00:00:00,13.86,1,17
244,2011-12-09 00:00:00,0.99,1,31
245,2011-12-22 00:00:00,1.98,1,32
246,2011-12-22 00:00:00,1.98,1,34
247,2011-12-23 00:00:00,3.96,1,36
248,2011-12-24 00:00:00,5.94,1,40
249,2011-12-27 00:00:00,8.91,1,46
250,2012-01-01 00:00:00,13.86,1,55
251,2012-01-09 00:00:00,0.99,1,10
252,2012-01-22 00:00:00,1.98,1,11
253,2012-01-22 00:00:00,1.98,1,13
254,2012-01-23 00:00:00,3.96,1,15
255,2012-01-24 00:00:00,5.94,1,19
256,2012-01-27 00:00:00,8.91,1,25
257,2012-02-01 00:00:00,13.86,1,34
258,2012-02-09 00:00:00,0.99,1,48
259,2012-02-22 00:00:00,1.98,1,49
260,2012-02-22 00:00:00,1.98,1,51
261,2012-02-23 00:00:00,3.96,1,53
262,2012-02-24 00:00:00,5.94,1,57
263,2012-02-27 00:00:00,8.91,1,4
264,2012-03-03 00:00:00,13.86,1,13
265,2012-03-11 00:00:00,0.99,1,27
266,2012-03-24 00:00:00,1.98,1,28
267,2012-03-24 00:00:00,1.98,1,30
268,2012-03-25 00:00:00,3.96,1,32
269,2012-03-26 00:00:00,5.94,1,36
270,2012-03-29 00:00:00,8.91,1,42
271,2012-04-03 00:00:00,13.86,1,51
272,2012-04-11 00:00:00,0.99,1,6
273,2012-04-24 00:00:00,1.98,1,7
274,2012-04-24 00:00:00,1.98,1,9
275,2012-04-25 00:00:00,3.96,1,11
276,2012-04-26 00:00:00,5.94,1,15
277,2012-04-29 00:00:00,8.91,1,21
278,2012-05-04 00:00:00,13.86,1,30
279,2012-05-12 00:00:00,0.99,1,44
280,2012-05-25 00:00:00,1.98,1,45
281,2012-05-25 00:00:00,1.98,1,47
282,2012-05-26 00:00:00,3.96,1,49
283,2012-05-27 00:00:00,5.94,1,53
284,2012-05-30 00:00:00,8.91,1,59
285,2012-06-04 00:00:00,13.86,1,9
286,2012-06-12 00:00:00,0.99,1,23
287,2012-06-25 00:00:00,1.98,1,24
288,2012-06-25 00:00:00,1.98,1,26
289,2012-06-26 00:00:00,3.96,1,28
290,2012-06-27 00:00:00,5.94,1,32
291,2012-06-30 00:00:00,8.91,1,38
292,2012-07-05 00:00:00,13.86,1,47
293,2012-07-13 00:00:00,0.99,1,2
294,2012-07-26 00:00:00,1.98,1,3
295,2012-07-26 00:00:00,1.98,1,5
296,2012-07-27 00:00:00,3.96,1,7
297,2012-07-28 00:00:00,5.94,1,11
298,2012-07-31 00:00:00,10.91,1,17
299,2012-08-05 00:00:00,23.86,1,26
300,2012-08-13 00:00:00,0.99,1,40
301,2012-08-26 00:00:00,1.98,1,41
302,2012-08-26 00:00:00,1.98,1,43
303,2012-08-27 00:00:00,3.96,1,45
304,2012-08-28 00:00:00,5.94,1,49
305,2012-08-31 00:00:00,8.91,1,55
306,2012-09-05 00:00:00,16.86,1,5
307,2012-09-13 00:00:00,1.99,1,19
308,2012-09-26 00:00:00,3.98,1,20
309,2012-09-26 00:00:00,3.98,1,22
310,2012-09-27 00:00:00,7.96,1,24
311,2012-09-28 00:00:00,11.94,1,28
312,2012-10-01 00:00:00,10.91,1,34
313,2012-10-06 00:00:00,16.86,1,43
314,2012-10-14 00:00:00,0.99,1,57
315,2012-10-27 00:00:00,1.98,1,58
316,2012-10-27 00:00:00,1.98,1,1
317,2012-10-28 00:00:00,3.96,1,3
318,2012-10-29 00:00:00,5.94,1,7
319,2012-11-01 00:00:00,8.91,1,13
320,2012-11-06 00:00:00,13.86,1,22
321,2012-11-14 00:00:00,0.99,1,36
322,2012-11-27 00:00:00,1.98,1,37
323,2012-11-27 00:00:00,1.98,1,39
324,2012-11-28 00:00:00,3.96,1,41
325,2012-11-29 00:00:00,5.94,1,45
326,2012-12-02 00:00:00,8.91,1,51
327,2012-12-07 00:00:00,13.86,1,1
328,2012-12-15 00:00:00,0.99,1,15
329,2012-12-28 00:00:00,1.98,1,16
330,2012-12-28 00:00:00,1.98,1,18
331,2012-12-29 00:00:00,3.96,1,20
332,2012-12-30 00:00:00,5.94,1,24
333,2013-01-02 00:00:00,8.91,1,30
334,2013-01-07 00:00:00,13.86,1,39
335,2013-01-15 00:00:00,0.99,1,53
336,2013-01-28 00:00:00,1.98,1,54
337,2013-01-28 00:00:00,1.98,1,56
338,2013-01-29 00:00:00,3.96,1,58
339,2013-01-30 00:00:00,5.94,1,3
340,2013-02-02 00:00:00,8.91,1,9
341,2013-02-07 00:00:00,13.86,1,18
342,2013-02-15 00:00:00,0.99,1,32
343,2013-02-28 00:00:00,1.98,1,33
344,2013-02-28 00:00:00,1.98,1,35
345,2013-03-01 00:00:00,3.96,1,37
346,2013-03-02 00:00:00,5.94,1,41
347,2013-03-05 00:00:00,8.91,1,47
348,2013-03-10 00:00:00,13.86,1,56
349,2013-03-18 00:00:00,0.99,1,11
350,2013-03-31 00:00:00,1.98,1,12
351,2013-03-31 00:00:00,1.98,1,14
352,2013-04-01 00:00:00,3.96,1,16
353,2013-04-02 00:00:00,5.94,1,20
354,2013-04-05 00:00:00,8.91,1,26
355,2013-04-10 00:00:00,13.86,1,35
356,2013-04-18 00:00:00,0.99,1,49
357,2013-05-01 00:00:00,1.98,1,50
358,2013-05-01 00:00:00,1.98,1,52
359,2013-05-02 00:00:00,3.96,1,54
360,2013-05-03 00:00:00,5.94,1,58
361,2013-05-06 00:00:00,8.91,1,5
362,2013-05-11 00:00:00,13.86,1,14
363,2013-05-19 00:00:00,0.99,1,28
364,2013-06-01 00:00:00,1.98,1,29
365,2013-06-01 00:00:00,1.98,1,31
366,2013-06-02 00:00:00,3.96,1,33
367,2013-06-03 00:00:00,5.94,1,37
368,2013-06-06 00:00:00,8.91,1,43
369,2013-06-11 00:00:00,13.86,1,52
370,2013-06-19 00:00:00,0.99,1,7
371,2013-07-02 00:00:00,1.98,1,8
372,2013-07-02 00:00:00,1.98,1,10
373,2013-07-03 00:00:00,3.96,1,12
374,2013-07-04 00:00:00,5.94,1,16
375,2013-07-07 00:00:00,8.91,1,22
376,2013-07-12 00:00:00,13.86,1,31
377,2013-07-20 00:00:00,0.99,1,45
378,2013-08-02 00:00:00,1.98,1,46
379,2013-08-02 00:00:00,1.98,1,48
380,2013-08-03 00:00:00,3.96,1,50
381,2013-08-04 00:00:00,5.94,1,54
382,2013-08-07 00:00:00,8.91,1,1
383,2013-08-12 00:00:00,13.86,1,10
384,2013-08-20 00:00:00,0.99,1,24
385,2013-09-02 00:00:00,1.98,1,25
386,2013-09-02 00:00:00,1.98,1,27
387,2013-09-03 00:00:00,3.96,1,29
388,2013-09-04 00:00:00,5.94,1,33
389,2013-09-07 00:00:00,8.91,1,39
390,2013-09-12 00:00:00,13.86,1,48
391,2013-09-20 00:00:00,0.99,1,3
392,2013-10-03 00:00:00,1.98,1,4
393,2013-10-03 00:00:00,1.98,1,6
394,2013-10-04 00:00:00,3.96,1,8
395,2013-10-05 00:00:00,5.94,1,12
396,2013-10-08 00:00:00,8.91,1,18
397,2013-10-13 00:00:00,13.86,1,27
398,2013-10-21 00:00:00,0.99,1,41
399,2013-11-03 00:00:00,1.98,1,42
400,2013-11-03 00:00:00,1.98,1,44
401,2013-11-04 00:00:00,3.96,1,46
402,2013-11-05 00:00:00,5.94,1,50
403,2013-11-08 00:00:00,8.91,1,56
404,2013-11-13 00:00:00,25.86,1,6
405,2013-11-21 00:00:00,0.99,1,20
406,2013-12-04 00:00:00,1.98,1,21
407,2013-12-04 00:00:00,1.98,1,23
408,2013-12-05 00:00:00,3.96,1,25
409,2013-12-06 00:00:00,5.94,1,29
410,2013-12-09 00:00:00,8.91,1,35
411,2013-12-14 00:00:00,13.86,1,44
412,2013-12-22 00:00:00,1.99,1,58
1 ID invoiceDate billingAddress total billingCity status billingState customer_ID billingCountry billingPostalCode
2 1 2009-01-01 00:00:00 Theodor-Heuss-Straße 34 1.98 Stuttgart 1 2 Germany 70174
3 2 2009-01-02 00:00:00 Ullevålsveien 14 3.96 Oslo 1 4 Norway 0171
4 3 2009-01-03 00:00:00 Grétrystraat 63 5.94 Brussels 1 8 Belgium 1000
5 4 2009-01-06 00:00:00 8210 111 ST NW 8.91 Edmonton 1 AB 14 Canada T6G 2C7
6 5 2009-01-11 00:00:00 69 Salem Street 13.86 Boston 1 MA 23 USA 2113
7 6 2009-01-19 00:00:00 Berger Straße 10 0.99 Frankfurt 1 37 Germany 60316
8 7 2009-02-01 00:00:00 Barbarossastraße 19 1.98 Berlin 1 38 Germany 10779
9 8 2009-02-01 00:00:00 8, Rue Hanovre 1.98 Paris 1 40 France 75002
10 9 2009-02-02 00:00:00 9, Place Louis Barthou 3.96 Bordeaux 1 42 France 33000
11 10 2009-02-03 00:00:00 3 Chatham Street 5.94 Dublin 1 Dublin 46 Ireland
12 11 2009-02-06 00:00:00 202 Hoxton Street 8.91 London 1 52 United Kingdom N1 5LH
13 12 2009-02-11 00:00:00 Theodor-Heuss-Straße 34 13.86 Stuttgart 1 2 Germany 70174
14 13 2009-02-19 00:00:00 1600 Amphitheatre Parkway 0.99 Mountain View 1 CA 16 USA 94043-1351
15 14 2009-03-04 00:00:00 1 Microsoft Way 1.98 Redmond 1 WA 17 USA 98052-8300
16 15 2009-03-04 00:00:00 1 Infinite Loop 1.98 Cupertino 1 CA 19 USA 95014
17 16 2009-03-05 00:00:00 801 W 4th Street 3.96 Reno 1 NV 21 USA 89503
18 17 2009-03-06 00:00:00 319 N. Frances Street 5.94 Madison 1 WI 25 USA 53703
19 18 2009-03-09 00:00:00 194A Chain Lake Drive 8.91 Halifax 1 NS 31 Canada B3S 1C5
20 19 2009-03-14 00:00:00 8, Rue Hanovre 13.86 Paris 1 40 France 75002
21 20 2009-03-22 00:00:00 110 Raeburn Pl 0.99 Edinburgh 1 54 United Kingdom EH4 1HH
22 21 2009-04-04 00:00:00 421 Bourke Street 1.98 Sidney 1 NSW 55 Australia 2010
23 22 2009-04-04 00:00:00 Calle Lira, 198 1.98 Santiago 1 57 Chile
24 23 2009-04-05 00:00:00 3,Raj Bhavan Road 3.96 Bangalore 1 59 India 560001
25 24 2009-04-06 00:00:00 Ullevålsveien 14 5.94 Oslo 1 4 Norway 0171
26 25 2009-04-09 00:00:00 Rua Dr. Falcão Filho, 155 8.91 São Paulo 1 SP 10 Brazil 01007-010
27 26 2009-04-14 00:00:00 1 Infinite Loop 13.86 Cupertino 1 CA 19 USA 95014
28 27 2009-04-22 00:00:00 5112 48 Street 0.99 Yellowknife 1 NT 33 Canada X1A 1N6
29 28 2009-05-05 00:00:00 Rua da Assunção 53 1.98 Lisbon 1 34 Portugal
30 29 2009-05-05 00:00:00 Tauentzienstraße 8 1.98 Berlin 1 36 Germany 10789
31 30 2009-05-06 00:00:00 Barbarossastraße 19 3.96 Berlin 1 38 Germany 10779
32 31 2009-05-07 00:00:00 9, Place Louis Barthou 5.94 Bordeaux 1 42 France 33000
33 32 2009-05-10 00:00:00 Lijnbaansgracht 120bg 8.91 Amsterdam 1 VV 48 Netherlands 1016
34 33 2009-05-15 00:00:00 Calle Lira, 198 13.86 Santiago 1 57 Chile
35 34 2009-05-23 00:00:00 Praça Pio X, 119 0.99 Rio de Janeiro 1 RJ 12 Brazil 20040-020
36 35 2009-06-05 00:00:00 Qe 7 Bloco G 1.98 Brasília 1 DF 13 Brazil 71020-677
37 36 2009-06-05 00:00:00 700 W Pender Street 1.98 Vancouver 1 BC 15 Canada V6C 1G8
38 37 2009-06-06 00:00:00 1 Microsoft Way 3.96 Redmond 1 WA 17 USA 98052-8300
39 38 2009-06-07 00:00:00 801 W 4th Street 5.94 Reno 1 NV 21 USA 89503
40 39 2009-06-10 00:00:00 1033 N Park Ave 8.91 Tucson 1 AZ 27 USA 85719
41 40 2009-06-15 00:00:00 Tauentzienstraße 8 13.86 Berlin 1 36 Germany 10789
42 41 2009-06-23 00:00:00 C/ San Bernardo 85 0.99 Madrid 1 50 Spain 28015
43 42 2009-07-06 00:00:00 Celsiusg. 9 1.98 Stockholm 1 51 Sweden 11230
44 43 2009-07-06 00:00:00 113 Lupus St 1.98 London 1 53 United Kingdom SW1V 3EN
45 44 2009-07-07 00:00:00 421 Bourke Street 3.96 Sidney 1 NSW 55 Australia 2010
46 45 2009-07-08 00:00:00 3,Raj Bhavan Road 5.94 Bangalore 1 59 India 560001
47 46 2009-07-11 00:00:00 Rilská 3174/6 8.91 Prague 1 6 Czech Republic 14300
48 47 2009-07-16 00:00:00 700 W Pender Street 13.86 Vancouver 1 BC 15 Canada V6C 1G8
49 48 2009-07-24 00:00:00 796 Dundas Street West 0.99 Toronto 1 ON 29 Canada M6J 1V1
50 49 2009-08-06 00:00:00 230 Elgin Street 1.98 Ottawa 1 ON 30 Canada K2P 1L7
51 50 2009-08-06 00:00:00 696 Osborne Street 1.98 Winnipeg 1 MB 32 Canada R3L 2B9
52 51 2009-08-07 00:00:00 Rua da Assunção 53 3.96 Lisbon 1 34 Portugal
53 52 2009-08-08 00:00:00 Barbarossastraße 19 5.94 Berlin 1 38 Germany 10779
54 53 2009-08-11 00:00:00 Porthaninkatu 9 8.91 Helsinki 1 44 Finland 00530
55 54 2009-08-16 00:00:00 113 Lupus St 13.86 London 1 53 United Kingdom SW1V 3EN
56 55 2009-08-24 00:00:00 Grétrystraat 63 0.99 Brussels 1 8 Belgium 1000
57 56 2009-09-06 00:00:00 Sønder Boulevard 51 1.98 Copenhagen 1 9 Denmark 1720
58 57 2009-09-06 00:00:00 Av. Paulista, 2022 1.98 São Paulo 1 SP 11 Brazil 01310-200
59 58 2009-09-07 00:00:00 Qe 7 Bloco G 3.96 Brasília 1 DF 13 Brazil 71020-677
60 59 2009-09-08 00:00:00 1 Microsoft Way 5.94 Redmond 1 WA 17 USA 98052-8300
61 60 2009-09-11 00:00:00 69 Salem Street 8.91 Boston 1 MA 23 USA 2113
62 61 2009-09-16 00:00:00 696 Osborne Street 13.86 Winnipeg 1 MB 32 Canada R3L 2B9
63 62 2009-09-24 00:00:00 3 Chatham Street 0.99 Dublin 1 Dublin 46 Ireland
64 63 2009-10-07 00:00:00 Via Degli Scipioni, 43 1.98 Rome 1 RM 47 Italy 00192
65 64 2009-10-07 00:00:00 Ordynacka 10 1.98 Warsaw 1 49 Poland 00-358
66 65 2009-10-08 00:00:00 Celsiusg. 9 3.96 Stockholm 1 51 Sweden 11230
67 66 2009-10-09 00:00:00 421 Bourke Street 5.94 Sidney 1 NSW 55 Australia 2010
68 67 2009-10-12 00:00:00 Theodor-Heuss-Straße 34 8.91 Stuttgart 1 2 Germany 70174
69 68 2009-10-17 00:00:00 Av. Paulista, 2022 13.86 São Paulo 1 SP 11 Brazil 01310-200
70 69 2009-10-25 00:00:00 319 N. Frances Street 0.99 Madison 1 WI 25 USA 53703
71 70 2009-11-07 00:00:00 2211 W Berry Street 1.98 Fort Worth 1 TX 26 USA 76110
72 71 2009-11-07 00:00:00 302 S 700 E 1.98 Salt Lake City 1 UT 28 USA 84102
73 72 2009-11-08 00:00:00 230 Elgin Street 3.96 Ottawa 1 ON 30 Canada K2P 1L7
74 73 2009-11-09 00:00:00 Rua da Assunção 53 5.94 Lisbon 1 34 Portugal
75 74 2009-11-12 00:00:00 8, Rue Hanovre 8.91 Paris 1 40 France 75002
76 75 2009-11-17 00:00:00 Ordynacka 10 13.86 Warsaw 1 49 Poland 00-358
77 76 2009-11-25 00:00:00 Ullevålsveien 14 0.99 Oslo 1 4 Norway 0171
78 77 2009-12-08 00:00:00 Klanova 9/506 1.98 Prague 1 5 Czech Republic 14700
79 78 2009-12-08 00:00:00 Rotenturmstraße 4, 1010 Innere Stadt 1.98 Vienne 1 7 Austria 1010
80 79 2009-12-09 00:00:00 Sønder Boulevard 51 3.96 Copenhagen 1 9 Denmark 1720
81 80 2009-12-10 00:00:00 Qe 7 Bloco G 5.94 Brasília 1 DF 13 Brazil 71020-677
82 81 2009-12-13 00:00:00 1 Infinite Loop 8.91 Cupertino 1 CA 19 USA 95014
83 82 2009-12-18 00:00:00 302 S 700 E 13.86 Salt Lake City 1 UT 28 USA 84102
84 83 2009-12-26 00:00:00 9, Place Louis Barthou 0.99 Bordeaux 1 42 France 33000
85 84 2010-01-08 00:00:00 68, Rue Jouvence 1.98 Dijon 1 43 France 21000
86 85 2010-01-08 00:00:00 Erzsébet krt. 58. 1.98 Budapest 1 45 Hungary H-1073
87 86 2010-01-09 00:00:00 Via Degli Scipioni, 43 3.96 Rome 1 RM 47 Italy 00192
88 87 2010-01-10 00:00:00 Celsiusg. 9 6.94 Stockholm 1 51 Sweden 11230
89 88 2010-01-13 00:00:00 Calle Lira, 198 17.91 Santiago 1 57 Chile
90 89 2010-01-18 00:00:00 Rotenturmstraße 4, 1010 Innere Stadt 18.86 Vienne 1 7 Austria 1010
91 90 2010-01-26 00:00:00 801 W 4th Street 0.99 Reno 1 NV 21 USA 89503
92 91 2010-02-08 00:00:00 120 S Orange Ave 1.98 Orlando 1 FL 22 USA 32801
93 92 2010-02-08 00:00:00 162 E Superior Street 1.98 Chicago 1 IL 24 USA 60611
94 93 2010-02-09 00:00:00 2211 W Berry Street 3.96 Fort Worth 1 TX 26 USA 76110
95 94 2010-02-10 00:00:00 230 Elgin Street 5.94 Ottawa 1 ON 30 Canada K2P 1L7
96 95 2010-02-13 00:00:00 Tauentzienstraße 8 8.91 Berlin 1 36 Germany 10789
97 96 2010-02-18 00:00:00 Erzsébet krt. 58. 21.86 Budapest 1 45 Hungary H-1073
98 97 2010-02-26 00:00:00 3,Raj Bhavan Road 1.99 Bangalore 1 59 India 560001
99 98 2010-03-11 00:00:00 Av. Brigadeiro Faria Lima, 2170 3.98 São José dos Campos 1 SP 1 Brazil 12227-000
100 99 2010-03-11 00:00:00 1498 rue Bélanger 3.98 Montréal 1 QC 3 Canada H2G 1A7
101 100 2010-03-12 00:00:00 Klanova 9/506 3.96 Prague 1 5 Czech Republic 14700
102 101 2010-03-13 00:00:00 Sønder Boulevard 51 5.94 Copenhagen 1 9 Denmark 1720
103 102 2010-03-16 00:00:00 700 W Pender Street 9.91 Vancouver 1 BC 15 Canada V6C 1G8
104 103 2010-03-21 00:00:00 162 E Superior Street 15.86 Chicago 1 IL 24 USA 60611
105 104 2010-03-29 00:00:00 Barbarossastraße 19 0.99 Berlin 1 38 Germany 10779
106 105 2010-04-11 00:00:00 4, Rue Milton 1.98 Paris 1 39 France 75009
107 106 2010-04-11 00:00:00 11, Place Bellecour 1.98 Lyon 1 41 France 69002
108 107 2010-04-12 00:00:00 68, Rue Jouvence 3.96 Dijon 1 43 France 21000
109 108 2010-04-13 00:00:00 Via Degli Scipioni, 43 5.94 Rome 1 RM 47 Italy 00192
110 109 2010-04-16 00:00:00 113 Lupus St 8.91 London 1 53 United Kingdom SW1V 3EN
111 110 2010-04-21 00:00:00 1498 rue Bélanger 13.86 Montréal 1 QC 3 Canada H2G 1A7
112 111 2010-04-29 00:00:00 1 Microsoft Way 0.99 Redmond 1 WA 17 USA 98052-8300
113 112 2010-05-12 00:00:00 627 Broadway 1.98 New York 1 NY 18 USA 10012-2612
114 113 2010-05-12 00:00:00 541 Del Medio Avenue 1.98 Mountain View 1 CA 20 USA 94040-111
115 114 2010-05-13 00:00:00 120 S Orange Ave 3.96 Orlando 1 FL 22 USA 32801
116 115 2010-05-14 00:00:00 2211 W Berry Street 5.94 Fort Worth 1 TX 26 USA 76110
117 116 2010-05-17 00:00:00 696 Osborne Street 8.91 Winnipeg 1 MB 32 Canada R3L 2B9
118 117 2010-05-22 00:00:00 11, Place Bellecour 13.86 Lyon 1 41 France 69002
119 118 2010-05-30 00:00:00 421 Bourke Street 0.99 Sidney 1 NSW 55 Australia 2010
120 119 2010-06-12 00:00:00 307 Macacha Güemes 1.98 Buenos Aires 1 56 Argentina 1106
121 120 2010-06-12 00:00:00 12,Community Centre 1.98 Delhi 1 58 India 110017
122 121 2010-06-13 00:00:00 Av. Brigadeiro Faria Lima, 2170 3.96 São José dos Campos 1 SP 1 Brazil 12227-000
123 122 2010-06-14 00:00:00 Klanova 9/506 5.94 Prague 1 5 Czech Republic 14700
124 123 2010-06-17 00:00:00 Av. Paulista, 2022 8.91 São Paulo 1 SP 11 Brazil 01310-200
125 124 2010-06-22 00:00:00 541 Del Medio Avenue 13.86 Mountain View 1 CA 20 USA 94040-111
126 125 2010-06-30 00:00:00 Rua da Assunção 53 0.99 Lisbon 1 34 Portugal
127 126 2010-07-13 00:00:00 Rua dos Campeões Europeus de Viena, 4350 1.98 Porto 1 35 Portugal
128 127 2010-07-13 00:00:00 Berger Straße 10 1.98 Frankfurt 1 37 Germany 60316
129 128 2010-07-14 00:00:00 4, Rue Milton 3.96 Paris 1 39 France 75009
130 129 2010-07-15 00:00:00 68, Rue Jouvence 5.94 Dijon 1 43 France 21000
131 130 2010-07-18 00:00:00 Ordynacka 10 8.91 Warsaw 1 49 Poland 00-358
132 131 2010-07-23 00:00:00 12,Community Centre 13.86 Delhi 1 58 India 110017
133 132 2010-07-31 00:00:00 Qe 7 Bloco G 0.99 Brasília 1 DF 13 Brazil 71020-677
134 133 2010-08-13 00:00:00 8210 111 ST NW 1.98 Edmonton 1 AB 14 Canada T6G 2C7
135 134 2010-08-13 00:00:00 1600 Amphitheatre Parkway 1.98 Mountain View 1 CA 16 USA 94043-1351
136 135 2010-08-14 00:00:00 627 Broadway 3.96 New York 1 NY 18 USA 10012-2612
137 136 2010-08-15 00:00:00 120 S Orange Ave 5.94 Orlando 1 FL 22 USA 32801
138 137 2010-08-18 00:00:00 302 S 700 E 8.91 Salt Lake City 1 UT 28 USA 84102
139 138 2010-08-23 00:00:00 Berger Straße 10 13.86 Frankfurt 1 37 Germany 60316
140 139 2010-08-31 00:00:00 Celsiusg. 9 0.99 Stockholm 1 51 Sweden 11230
141 140 2010-09-13 00:00:00 202 Hoxton Street 1.98 London 1 52 United Kingdom N1 5LH
142 141 2010-09-13 00:00:00 110 Raeburn Pl 1.98 Edinburgh 1 54 United Kingdom EH4 1HH
143 142 2010-09-14 00:00:00 307 Macacha Güemes 3.96 Buenos Aires 1 56 Argentina 1106
144 143 2010-09-15 00:00:00 Av. Brigadeiro Faria Lima, 2170 5.94 São José dos Campos 1 SP 1 Brazil 12227-000
145 144 2010-09-18 00:00:00 Rotenturmstraße 4, 1010 Innere Stadt 8.91 Vienne 1 7 Austria 1010
146 145 2010-09-23 00:00:00 1600 Amphitheatre Parkway 13.86 Mountain View 1 CA 16 USA 94043-1351
147 146 2010-10-01 00:00:00 230 Elgin Street 0.99 Ottawa 1 ON 30 Canada K2P 1L7
148 147 2010-10-14 00:00:00 194A Chain Lake Drive 1.98 Halifax 1 NS 31 Canada B3S 1C5
149 148 2010-10-14 00:00:00 5112 48 Street 1.98 Yellowknife 1 NT 33 Canada X1A 1N6
150 149 2010-10-15 00:00:00 Rua dos Campeões Europeus de Viena, 4350 3.96 Porto 1 35 Portugal
151 150 2010-10-16 00:00:00 4, Rue Milton 5.94 Paris 1 39 France 75009
152 151 2010-10-19 00:00:00 Erzsébet krt. 58. 8.91 Budapest 1 45 Hungary H-1073
153 152 2010-10-24 00:00:00 110 Raeburn Pl 13.86 Edinburgh 1 54 United Kingdom EH4 1HH
154 153 2010-11-01 00:00:00 Sønder Boulevard 51 0.99 Copenhagen 1 9 Denmark 1720
155 154 2010-11-14 00:00:00 Rua Dr. Falcão Filho, 155 1.98 São Paulo 1 SP 10 Brazil 01007-010
156 155 2010-11-14 00:00:00 Praça Pio X, 119 1.98 Rio de Janeiro 1 RJ 12 Brazil 20040-020
157 156 2010-11-15 00:00:00 8210 111 ST NW 3.96 Edmonton 1 AB 14 Canada T6G 2C7
158 157 2010-11-16 00:00:00 627 Broadway 5.94 New York 1 NY 18 USA 10012-2612
159 158 2010-11-19 00:00:00 162 E Superior Street 8.91 Chicago 1 IL 24 USA 60611
160 159 2010-11-24 00:00:00 5112 48 Street 13.86 Yellowknife 1 NT 33 Canada X1A 1N6
161 160 2010-12-02 00:00:00 Via Degli Scipioni, 43 0.99 Rome 1 RM 47 Italy 00192
162 161 2010-12-15 00:00:00 Lijnbaansgracht 120bg 1.98 Amsterdam 1 VV 48 Netherlands 1016
163 162 2010-12-15 00:00:00 C/ San Bernardo 85 1.98 Madrid 1 50 Spain 28015
164 163 2010-12-16 00:00:00 202 Hoxton Street 3.96 London 1 52 United Kingdom N1 5LH
165 164 2010-12-17 00:00:00 307 Macacha Güemes 5.94 Buenos Aires 1 56 Argentina 1106
166 165 2010-12-20 00:00:00 1498 rue Bélanger 8.91 Montréal 1 QC 3 Canada H2G 1A7
167 166 2010-12-25 00:00:00 Praça Pio X, 119 13.86 Rio de Janeiro 1 RJ 12 Brazil 20040-020
168 167 2011-01-02 00:00:00 2211 W Berry Street 0.99 Fort Worth 1 TX 26 USA 76110
169 168 2011-01-15 00:00:00 1033 N Park Ave 1.98 Tucson 1 AZ 27 USA 85719
170 169 2011-01-15 00:00:00 796 Dundas Street West 1.98 Toronto 1 ON 29 Canada M6J 1V1
171 170 2011-01-16 00:00:00 194A Chain Lake Drive 3.96 Halifax 1 NS 31 Canada B3S 1C5
172 171 2011-01-17 00:00:00 Rua dos Campeões Europeus de Viena, 4350 5.94 Porto 1 35 Portugal
173 172 2011-01-20 00:00:00 11, Place Bellecour 8.91 Lyon 1 41 France 69002
174 173 2011-01-25 00:00:00 C/ San Bernardo 85 13.86 Madrid 1 50 Spain 28015
175 174 2011-02-02 00:00:00 Klanova 9/506 0.99 Prague 1 5 Czech Republic 14700
176 175 2011-02-15 00:00:00 Rilská 3174/6 1.98 Prague 1 6 Czech Republic 14300
177 176 2011-02-15 00:00:00 Grétrystraat 63 1.98 Brussels 1 8 Belgium 1000
178 177 2011-02-16 00:00:00 Rua Dr. Falcão Filho, 155 3.96 São Paulo 1 SP 10 Brazil 01007-010
179 178 2011-02-17 00:00:00 8210 111 ST NW 5.94 Edmonton 1 AB 14 Canada T6G 2C7
180 179 2011-02-20 00:00:00 541 Del Medio Avenue 8.91 Mountain View 1 CA 20 USA 94040-111
181 180 2011-02-25 00:00:00 796 Dundas Street West 13.86 Toronto 1 ON 29 Canada M6J 1V1
182 181 2011-03-05 00:00:00 68, Rue Jouvence 0.99 Dijon 1 43 France 21000
183 182 2011-03-18 00:00:00 Porthaninkatu 9 1.98 Helsinki 1 44 Finland 00530
184 183 2011-03-18 00:00:00 3 Chatham Street 1.98 Dublin 1 Dublin 46 Ireland
185 184 2011-03-19 00:00:00 Lijnbaansgracht 120bg 3.96 Amsterdam 1 VV 48 Netherlands 1016
186 185 2011-03-20 00:00:00 202 Hoxton Street 5.94 London 1 52 United Kingdom N1 5LH
187 186 2011-03-23 00:00:00 12,Community Centre 8.91 Delhi 1 58 India 110017
188 187 2011-03-28 00:00:00 Grétrystraat 63 13.86 Brussels 1 8 Belgium 1000
189 188 2011-04-05 00:00:00 120 S Orange Ave 0.99 Orlando 1 FL 22 USA 32801
190 189 2011-04-18 00:00:00 69 Salem Street 1.98 Boston 1 MA 23 USA 2113
191 190 2011-04-18 00:00:00 319 N. Frances Street 1.98 Madison 1 WI 25 USA 53703
192 191 2011-04-19 00:00:00 1033 N Park Ave 3.96 Tucson 1 AZ 27 USA 85719
193 192 2011-04-20 00:00:00 194A Chain Lake Drive 5.94 Halifax 1 NS 31 Canada B3S 1C5
194 193 2011-04-23 00:00:00 Berger Straße 10 14.91 Frankfurt 1 37 Germany 60316
195 194 2011-04-28 00:00:00 3 Chatham Street 21.86 Dublin 1 Dublin 46 Ireland
196 195 2011-05-06 00:00:00 Av. Brigadeiro Faria Lima, 2170 0.99 São José dos Campos 1 SP 1 Brazil 12227-000
197 196 2011-05-19 00:00:00 Theodor-Heuss-Straße 34 1.98 Stuttgart 1 2 Germany 70174
198 197 2011-05-19 00:00:00 Ullevålsveien 14 1.98 Oslo 1 4 Norway 0171
199 198 2011-05-20 00:00:00 Rilská 3174/6 3.96 Prague 1 6 Czech Republic 14300
200 199 2011-05-21 00:00:00 Rua Dr. Falcão Filho, 155 5.94 São Paulo 1 SP 10 Brazil 01007-010
201 200 2011-05-24 00:00:00 1600 Amphitheatre Parkway 8.91 Mountain View 1 CA 16 USA 94043-1351
202 201 2011-05-29 00:00:00 319 N. Frances Street 18.86 Madison 1 WI 25 USA 53703
203 202 2011-06-06 00:00:00 4, Rue Milton 1.99 Paris 1 39 France 75009
204 203 2011-06-19 00:00:00 8, Rue Hanovre 2.98 Paris 1 40 France 75002
205 204 2011-06-19 00:00:00 9, Place Louis Barthou 3.98 Bordeaux 1 42 France 33000
206 205 2011-06-20 00:00:00 Porthaninkatu 9 7.96 Helsinki 1 44 Finland 00530
207 206 2011-06-21 00:00:00 Lijnbaansgracht 120bg 8.94 Amsterdam 1 VV 48 Netherlands 1016
208 207 2011-06-24 00:00:00 110 Raeburn Pl 8.91 Edinburgh 1 54 United Kingdom EH4 1HH
209 208 2011-06-29 00:00:00 Ullevålsveien 14 15.86 Oslo 1 4 Norway 0171
210 209 2011-07-07 00:00:00 627 Broadway 0.99 New York 1 NY 18 USA 10012-2612
211 210 2011-07-20 00:00:00 1 Infinite Loop 1.98 Cupertino 1 CA 19 USA 95014
212 211 2011-07-20 00:00:00 801 W 4th Street 1.98 Reno 1 NV 21 USA 89503
213 212 2011-07-21 00:00:00 69 Salem Street 3.96 Boston 1 MA 23 USA 2113
214 213 2011-07-22 00:00:00 1033 N Park Ave 5.94 Tucson 1 AZ 27 USA 85719
215 214 2011-07-25 00:00:00 5112 48 Street 8.91 Yellowknife 1 NT 33 Canada X1A 1N6
216 215 2011-07-30 00:00:00 9, Place Louis Barthou 13.86 Bordeaux 1 42 France 33000
217 216 2011-08-07 00:00:00 307 Macacha Güemes 0.99 Buenos Aires 1 56 Argentina 1106
218 217 2011-08-20 00:00:00 Calle Lira, 198 1.98 Santiago 1 57 Chile
219 218 2011-08-20 00:00:00 3,Raj Bhavan Road 1.98 Bangalore 1 59 India 560001
220 219 2011-08-21 00:00:00 Theodor-Heuss-Straße 34 3.96 Stuttgart 1 2 Germany 70174
221 220 2011-08-22 00:00:00 Rilská 3174/6 5.94 Prague 1 6 Czech Republic 14300
222 221 2011-08-25 00:00:00 Praça Pio X, 119 8.91 Rio de Janeiro 1 RJ 12 Brazil 20040-020
223 222 2011-08-30 00:00:00 801 W 4th Street 13.86 Reno 1 NV 21 USA 89503
224 223 2011-09-07 00:00:00 Rua dos Campeões Europeus de Viena, 4350 0.99 Porto 1 35 Portugal
225 224 2011-09-20 00:00:00 Tauentzienstraße 8 1.98 Berlin 1 36 Germany 10789
226 225 2011-09-20 00:00:00 Barbarossastraße 19 1.98 Berlin 1 38 Germany 10779
227 226 2011-09-21 00:00:00 8, Rue Hanovre 3.96 Paris 1 40 France 75002
228 227 2011-09-22 00:00:00 Porthaninkatu 9 5.94 Helsinki 1 44 Finland 00530
229 228 2011-09-25 00:00:00 C/ San Bernardo 85 8.91 Madrid 1 50 Spain 28015
230 229 2011-09-30 00:00:00 3,Raj Bhavan Road 13.86 Bangalore 1 59 India 560001
231 230 2011-10-08 00:00:00 8210 111 ST NW 0.99 Edmonton 1 AB 14 Canada T6G 2C7
232 231 2011-10-21 00:00:00 700 W Pender Street 1.98 Vancouver 1 BC 15 Canada V6C 1G8
233 232 2011-10-21 00:00:00 1 Microsoft Way 1.98 Redmond 1 WA 17 USA 98052-8300
234 233 2011-10-22 00:00:00 1 Infinite Loop 3.96 Cupertino 1 CA 19 USA 95014
235 234 2011-10-23 00:00:00 69 Salem Street 5.94 Boston 1 MA 23 USA 2113
236 235 2011-10-26 00:00:00 796 Dundas Street West 8.91 Toronto 1 ON 29 Canada M6J 1V1
237 236 2011-10-31 00:00:00 Barbarossastraße 19 13.86 Berlin 1 38 Germany 10779
238 237 2011-11-08 00:00:00 202 Hoxton Street 0.99 London 1 52 United Kingdom N1 5LH
239 238 2011-11-21 00:00:00 113 Lupus St 1.98 London 1 53 United Kingdom SW1V 3EN
240 239 2011-11-21 00:00:00 421 Bourke Street 1.98 Sidney 1 NSW 55 Australia 2010
241 240 2011-11-22 00:00:00 Calle Lira, 198 3.96 Santiago 1 57 Chile
242 241 2011-11-23 00:00:00 Theodor-Heuss-Straße 34 5.94 Stuttgart 1 2 Germany 70174
243 242 2011-11-26 00:00:00 Grétrystraat 63 8.91 Brussels 1 8 Belgium 1000
244 243 2011-12-01 00:00:00 1 Microsoft Way 13.86 Redmond 1 WA 17 USA 98052-8300
245 244 2011-12-09 00:00:00 194A Chain Lake Drive 0.99 Halifax 1 NS 31 Canada B3S 1C5
246 245 2011-12-22 00:00:00 696 Osborne Street 1.98 Winnipeg 1 MB 32 Canada R3L 2B9
247 246 2011-12-22 00:00:00 Rua da Assunção 53 1.98 Lisbon 1 34 Portugal
248 247 2011-12-23 00:00:00 Tauentzienstraße 8 3.96 Berlin 1 36 Germany 10789
249 248 2011-12-24 00:00:00 8, Rue Hanovre 5.94 Paris 1 40 France 75002
250 249 2011-12-27 00:00:00 3 Chatham Street 8.91 Dublin 1 Dublin 46 Ireland
251 250 2012-01-01 00:00:00 421 Bourke Street 13.86 Sidney 1 NSW 55 Australia 2010
252 251 2012-01-09 00:00:00 Rua Dr. Falcão Filho, 155 0.99 São Paulo 1 SP 10 Brazil 01007-010
253 252 2012-01-22 00:00:00 Av. Paulista, 2022 1.98 São Paulo 1 SP 11 Brazil 01310-200
254 253 2012-01-22 00:00:00 Qe 7 Bloco G 1.98 Brasília 1 DF 13 Brazil 71020-677
255 254 2012-01-23 00:00:00 700 W Pender Street 3.96 Vancouver 1 BC 15 Canada V6C 1G8
256 255 2012-01-24 00:00:00 1 Infinite Loop 5.94 Cupertino 1 CA 19 USA 95014
257 256 2012-01-27 00:00:00 319 N. Frances Street 8.91 Madison 1 WI 25 USA 53703
258 257 2012-02-01 00:00:00 Rua da Assunção 53 13.86 Lisbon 1 34 Portugal
259 258 2012-02-09 00:00:00 Lijnbaansgracht 120bg 0.99 Amsterdam 1 VV 48 Netherlands 1016
260 259 2012-02-22 00:00:00 Ordynacka 10 1.98 Warsaw 1 49 Poland 00-358
261 260 2012-02-22 00:00:00 Celsiusg. 9 1.98 Stockholm 1 51 Sweden 11230
262 261 2012-02-23 00:00:00 113 Lupus St 3.96 London 1 53 United Kingdom SW1V 3EN
263 262 2012-02-24 00:00:00 Calle Lira, 198 5.94 Santiago 1 57 Chile
264 263 2012-02-27 00:00:00 Ullevålsveien 14 8.91 Oslo 1 4 Norway 0171
265 264 2012-03-03 00:00:00 Qe 7 Bloco G 13.86 Brasília 1 DF 13 Brazil 71020-677
266 265 2012-03-11 00:00:00 1033 N Park Ave 0.99 Tucson 1 AZ 27 USA 85719
267 266 2012-03-24 00:00:00 302 S 700 E 1.98 Salt Lake City 1 UT 28 USA 84102
268 267 2012-03-24 00:00:00 230 Elgin Street 1.98 Ottawa 1 ON 30 Canada K2P 1L7
269 268 2012-03-25 00:00:00 696 Osborne Street 3.96 Winnipeg 1 MB 32 Canada R3L 2B9
270 269 2012-03-26 00:00:00 Tauentzienstraße 8 5.94 Berlin 1 36 Germany 10789
271 270 2012-03-29 00:00:00 9, Place Louis Barthou 8.91 Bordeaux 1 42 France 33000
272 271 2012-04-03 00:00:00 Celsiusg. 9 13.86 Stockholm 1 51 Sweden 11230
273 272 2012-04-11 00:00:00 Rilská 3174/6 0.99 Prague 1 6 Czech Republic 14300
274 273 2012-04-24 00:00:00 Rotenturmstraße 4, 1010 Innere Stadt 1.98 Vienne 1 7 Austria 1010
275 274 2012-04-24 00:00:00 Sønder Boulevard 51 1.98 Copenhagen 1 9 Denmark 1720
276 275 2012-04-25 00:00:00 Av. Paulista, 2022 3.96 São Paulo 1 SP 11 Brazil 01310-200
277 276 2012-04-26 00:00:00 700 W Pender Street 5.94 Vancouver 1 BC 15 Canada V6C 1G8
278 277 2012-04-29 00:00:00 801 W 4th Street 8.91 Reno 1 NV 21 USA 89503
279 278 2012-05-04 00:00:00 230 Elgin Street 13.86 Ottawa 1 ON 30 Canada K2P 1L7
280 279 2012-05-12 00:00:00 Porthaninkatu 9 0.99 Helsinki 1 44 Finland 00530
281 280 2012-05-25 00:00:00 Erzsébet krt. 58. 1.98 Budapest 1 45 Hungary H-1073
282 281 2012-05-25 00:00:00 Via Degli Scipioni, 43 1.98 Rome 1 RM 47 Italy 00192
283 282 2012-05-26 00:00:00 Ordynacka 10 3.96 Warsaw 1 49 Poland 00-358
284 283 2012-05-27 00:00:00 113 Lupus St 5.94 London 1 53 United Kingdom SW1V 3EN
285 284 2012-05-30 00:00:00 3,Raj Bhavan Road 8.91 Bangalore 1 59 India 560001
286 285 2012-06-04 00:00:00 Sønder Boulevard 51 13.86 Copenhagen 1 9 Denmark 1720
287 286 2012-06-12 00:00:00 69 Salem Street 0.99 Boston 1 MA 23 USA 2113
288 287 2012-06-25 00:00:00 162 E Superior Street 1.98 Chicago 1 IL 24 USA 60611
289 288 2012-06-25 00:00:00 2211 W Berry Street 1.98 Fort Worth 1 TX 26 USA 76110
290 289 2012-06-26 00:00:00 302 S 700 E 3.96 Salt Lake City 1 UT 28 USA 84102
291 290 2012-06-27 00:00:00 696 Osborne Street 5.94 Winnipeg 1 MB 32 Canada R3L 2B9
292 291 2012-06-30 00:00:00 Barbarossastraße 19 8.91 Berlin 1 38 Germany 10779
293 292 2012-07-05 00:00:00 Via Degli Scipioni, 43 13.86 Rome 1 RM 47 Italy 00192
294 293 2012-07-13 00:00:00 Theodor-Heuss-Straße 34 0.99 Stuttgart 1 2 Germany 70174
295 294 2012-07-26 00:00:00 1498 rue Bélanger 1.98 Montréal 1 QC 3 Canada H2G 1A7
296 295 2012-07-26 00:00:00 Klanova 9/506 1.98 Prague 1 5 Czech Republic 14700
297 296 2012-07-27 00:00:00 Rotenturmstraße 4, 1010 Innere Stadt 3.96 Vienne 1 7 Austria 1010
298 297 2012-07-28 00:00:00 Av. Paulista, 2022 5.94 São Paulo 1 SP 11 Brazil 01310-200
299 298 2012-07-31 00:00:00 1 Microsoft Way 10.91 Redmond 1 WA 17 USA 98052-8300
300 299 2012-08-05 00:00:00 2211 W Berry Street 23.86 Fort Worth 1 TX 26 USA 76110
301 300 2012-08-13 00:00:00 8, Rue Hanovre 0.99 Paris 1 40 France 75002
302 301 2012-08-26 00:00:00 11, Place Bellecour 1.98 Lyon 1 41 France 69002
303 302 2012-08-26 00:00:00 68, Rue Jouvence 1.98 Dijon 1 43 France 21000
304 303 2012-08-27 00:00:00 Erzsébet krt. 58. 3.96 Budapest 1 45 Hungary H-1073
305 304 2012-08-28 00:00:00 Ordynacka 10 5.94 Warsaw 1 49 Poland 00-358
306 305 2012-08-31 00:00:00 421 Bourke Street 8.91 Sidney 1 NSW 55 Australia 2010
307 306 2012-09-05 00:00:00 Klanova 9/506 16.86 Prague 1 5 Czech Republic 14700
308 307 2012-09-13 00:00:00 1 Infinite Loop 1.99 Cupertino 1 CA 19 USA 95014
309 308 2012-09-26 00:00:00 541 Del Medio Avenue 3.98 Mountain View 1 CA 20 USA 94040-111
310 309 2012-09-26 00:00:00 120 S Orange Ave 3.98 Orlando 1 FL 22 USA 32801
311 310 2012-09-27 00:00:00 162 E Superior Street 7.96 Chicago 1 IL 24 USA 60611
312 311 2012-09-28 00:00:00 302 S 700 E 11.94 Salt Lake City 1 UT 28 USA 84102
313 312 2012-10-01 00:00:00 Rua da Assunção 53 10.91 Lisbon 1 34 Portugal
314 313 2012-10-06 00:00:00 68, Rue Jouvence 16.86 Dijon 1 43 France 21000
315 314 2012-10-14 00:00:00 Calle Lira, 198 0.99 Santiago 1 57 Chile
316 315 2012-10-27 00:00:00 12,Community Centre 1.98 Delhi 1 58 India 110017
317 316 2012-10-27 00:00:00 Av. Brigadeiro Faria Lima, 2170 1.98 São José dos Campos 1 SP 1 Brazil 12227-000
318 317 2012-10-28 00:00:00 1498 rue Bélanger 3.96 Montréal 1 QC 3 Canada H2G 1A7
319 318 2012-10-29 00:00:00 Rotenturmstraße 4, 1010 Innere Stadt 5.94 Vienne 1 7 Austria 1010
320 319 2012-11-01 00:00:00 Qe 7 Bloco G 8.91 Brasília 1 DF 13 Brazil 71020-677
321 320 2012-11-06 00:00:00 120 S Orange Ave 13.86 Orlando 1 FL 22 USA 32801
322 321 2012-11-14 00:00:00 Tauentzienstraße 8 0.99 Berlin 1 36 Germany 10789
323 322 2012-11-27 00:00:00 Berger Straße 10 1.98 Frankfurt 1 37 Germany 60316
324 323 2012-11-27 00:00:00 4, Rue Milton 1.98 Paris 1 39 France 75009
325 324 2012-11-28 00:00:00 11, Place Bellecour 3.96 Lyon 1 41 France 69002
326 325 2012-11-29 00:00:00 Erzsébet krt. 58. 5.94 Budapest 1 45 Hungary H-1073
327 326 2012-12-02 00:00:00 Celsiusg. 9 8.91 Stockholm 1 51 Sweden 11230
328 327 2012-12-07 00:00:00 Av. Brigadeiro Faria Lima, 2170 13.86 São José dos Campos 1 SP 1 Brazil 12227-000
329 328 2012-12-15 00:00:00 700 W Pender Street 0.99 Vancouver 1 BC 15 Canada V6C 1G8
330 329 2012-12-28 00:00:00 1600 Amphitheatre Parkway 1.98 Mountain View 1 CA 16 USA 94043-1351
331 330 2012-12-28 00:00:00 627 Broadway 1.98 New York 1 NY 18 USA 10012-2612
332 331 2012-12-29 00:00:00 541 Del Medio Avenue 3.96 Mountain View 1 CA 20 USA 94040-111
333 332 2012-12-30 00:00:00 162 E Superior Street 5.94 Chicago 1 IL 24 USA 60611
334 333 2013-01-02 00:00:00 230 Elgin Street 8.91 Ottawa 1 ON 30 Canada K2P 1L7
335 334 2013-01-07 00:00:00 4, Rue Milton 13.86 Paris 1 39 France 75009
336 335 2013-01-15 00:00:00 113 Lupus St 0.99 London 1 53 United Kingdom SW1V 3EN
337 336 2013-01-28 00:00:00 110 Raeburn Pl 1.98 Edinburgh 1 54 United Kingdom EH4 1HH
338 337 2013-01-28 00:00:00 307 Macacha Güemes 1.98 Buenos Aires 1 56 Argentina 1106
339 338 2013-01-29 00:00:00 12,Community Centre 3.96 Delhi 1 58 India 110017
340 339 2013-01-30 00:00:00 1498 rue Bélanger 5.94 Montréal 1 QC 3 Canada H2G 1A7
341 340 2013-02-02 00:00:00 Sønder Boulevard 51 8.91 Copenhagen 1 9 Denmark 1720
342 341 2013-02-07 00:00:00 627 Broadway 13.86 New York 1 NY 18 USA 10012-2612
343 342 2013-02-15 00:00:00 696 Osborne Street 0.99 Winnipeg 1 MB 32 Canada R3L 2B9
344 343 2013-02-28 00:00:00 5112 48 Street 1.98 Yellowknife 1 NT 33 Canada X1A 1N6
345 344 2013-02-28 00:00:00 Rua dos Campeões Europeus de Viena, 4350 1.98 Porto 1 35 Portugal
346 345 2013-03-01 00:00:00 Berger Straße 10 3.96 Frankfurt 1 37 Germany 60316
347 346 2013-03-02 00:00:00 11, Place Bellecour 5.94 Lyon 1 41 France 69002
348 347 2013-03-05 00:00:00 Via Degli Scipioni, 43 8.91 Rome 1 RM 47 Italy 00192
349 348 2013-03-10 00:00:00 307 Macacha Güemes 13.86 Buenos Aires 1 56 Argentina 1106
350 349 2013-03-18 00:00:00 Av. Paulista, 2022 0.99 São Paulo 1 SP 11 Brazil 01310-200
351 350 2013-03-31 00:00:00 Praça Pio X, 119 1.98 Rio de Janeiro 1 RJ 12 Brazil 20040-020
352 351 2013-03-31 00:00:00 8210 111 ST NW 1.98 Edmonton 1 AB 14 Canada T6G 2C7
353 352 2013-04-01 00:00:00 1600 Amphitheatre Parkway 3.96 Mountain View 1 CA 16 USA 94043-1351
354 353 2013-04-02 00:00:00 541 Del Medio Avenue 5.94 Mountain View 1 CA 20 USA 94040-111
355 354 2013-04-05 00:00:00 2211 W Berry Street 8.91 Fort Worth 1 TX 26 USA 76110
356 355 2013-04-10 00:00:00 Rua dos Campeões Europeus de Viena, 4350 13.86 Porto 1 35 Portugal
357 356 2013-04-18 00:00:00 Ordynacka 10 0.99 Warsaw 1 49 Poland 00-358
358 357 2013-05-01 00:00:00 C/ San Bernardo 85 1.98 Madrid 1 50 Spain 28015
359 358 2013-05-01 00:00:00 202 Hoxton Street 1.98 London 1 52 United Kingdom N1 5LH
360 359 2013-05-02 00:00:00 110 Raeburn Pl 3.96 Edinburgh 1 54 United Kingdom EH4 1HH
361 360 2013-05-03 00:00:00 12,Community Centre 5.94 Delhi 1 58 India 110017
362 361 2013-05-06 00:00:00 Klanova 9/506 8.91 Prague 1 5 Czech Republic 14700
363 362 2013-05-11 00:00:00 8210 111 ST NW 13.86 Edmonton 1 AB 14 Canada T6G 2C7
364 363 2013-05-19 00:00:00 302 S 700 E 0.99 Salt Lake City 1 UT 28 USA 84102
365 364 2013-06-01 00:00:00 796 Dundas Street West 1.98 Toronto 1 ON 29 Canada M6J 1V1
366 365 2013-06-01 00:00:00 194A Chain Lake Drive 1.98 Halifax 1 NS 31 Canada B3S 1C5
367 366 2013-06-02 00:00:00 5112 48 Street 3.96 Yellowknife 1 NT 33 Canada X1A 1N6
368 367 2013-06-03 00:00:00 Berger Straße 10 5.94 Frankfurt 1 37 Germany 60316
369 368 2013-06-06 00:00:00 68, Rue Jouvence 8.91 Dijon 1 43 France 21000
370 369 2013-06-11 00:00:00 202 Hoxton Street 13.86 London 1 52 United Kingdom N1 5LH
371 370 2013-06-19 00:00:00 Rotenturmstraße 4, 1010 Innere Stadt 0.99 Vienne 1 7 Austria 1010
372 371 2013-07-02 00:00:00 Grétrystraat 63 1.98 Brussels 1 8 Belgium 1000
373 372 2013-07-02 00:00:00 Rua Dr. Falcão Filho, 155 1.98 São Paulo 1 SP 10 Brazil 01007-010
374 373 2013-07-03 00:00:00 Praça Pio X, 119 3.96 Rio de Janeiro 1 RJ 12 Brazil 20040-020
375 374 2013-07-04 00:00:00 1600 Amphitheatre Parkway 5.94 Mountain View 1 CA 16 USA 94043-1351
376 375 2013-07-07 00:00:00 120 S Orange Ave 8.91 Orlando 1 FL 22 USA 32801
377 376 2013-07-12 00:00:00 194A Chain Lake Drive 13.86 Halifax 1 NS 31 Canada B3S 1C5
378 377 2013-07-20 00:00:00 Erzsébet krt. 58. 0.99 Budapest 1 45 Hungary H-1073
379 378 2013-08-02 00:00:00 3 Chatham Street 1.98 Dublin 1 Dublin 46 Ireland
380 379 2013-08-02 00:00:00 Lijnbaansgracht 120bg 1.98 Amsterdam 1 VV 48 Netherlands 1016
381 380 2013-08-03 00:00:00 C/ San Bernardo 85 3.96 Madrid 1 50 Spain 28015
382 381 2013-08-04 00:00:00 110 Raeburn Pl 5.94 Edinburgh 1 54 United Kingdom EH4 1HH
383 382 2013-08-07 00:00:00 Av. Brigadeiro Faria Lima, 2170 8.91 São José dos Campos 1 SP 1 Brazil 12227-000
384 383 2013-08-12 00:00:00 Rua Dr. Falcão Filho, 155 13.86 São Paulo 1 SP 10 Brazil 01007-010
385 384 2013-08-20 00:00:00 162 E Superior Street 0.99 Chicago 1 IL 24 USA 60611
386 385 2013-09-02 00:00:00 319 N. Frances Street 1.98 Madison 1 WI 25 USA 53703
387 386 2013-09-02 00:00:00 1033 N Park Ave 1.98 Tucson 1 AZ 27 USA 85719
388 387 2013-09-03 00:00:00 796 Dundas Street West 3.96 Toronto 1 ON 29 Canada M6J 1V1
389 388 2013-09-04 00:00:00 5112 48 Street 5.94 Yellowknife 1 NT 33 Canada X1A 1N6
390 389 2013-09-07 00:00:00 4, Rue Milton 8.91 Paris 1 39 France 75009
391 390 2013-09-12 00:00:00 Lijnbaansgracht 120bg 13.86 Amsterdam 1 VV 48 Netherlands 1016
392 391 2013-09-20 00:00:00 1498 rue Bélanger 0.99 Montréal 1 QC 3 Canada H2G 1A7
393 392 2013-10-03 00:00:00 Ullevålsveien 14 1.98 Oslo 1 4 Norway 0171
394 393 2013-10-03 00:00:00 Rilská 3174/6 1.98 Prague 1 6 Czech Republic 14300
395 394 2013-10-04 00:00:00 Grétrystraat 63 3.96 Brussels 1 8 Belgium 1000
396 395 2013-10-05 00:00:00 Praça Pio X, 119 5.94 Rio de Janeiro 1 RJ 12 Brazil 20040-020
397 396 2013-10-08 00:00:00 627 Broadway 8.91 New York 1 NY 18 USA 10012-2612
398 397 2013-10-13 00:00:00 1033 N Park Ave 13.86 Tucson 1 AZ 27 USA 85719
399 398 2013-10-21 00:00:00 11, Place Bellecour 0.99 Lyon 1 41 France 69002
400 399 2013-11-03 00:00:00 9, Place Louis Barthou 1.98 Bordeaux 1 42 France 33000
401 400 2013-11-03 00:00:00 Porthaninkatu 9 1.98 Helsinki 1 44 Finland 00530
402 401 2013-11-04 00:00:00 3 Chatham Street 3.96 Dublin 1 Dublin 46 Ireland
403 402 2013-11-05 00:00:00 C/ San Bernardo 85 5.94 Madrid 1 50 Spain 28015
404 403 2013-11-08 00:00:00 307 Macacha Güemes 8.91 Buenos Aires 1 56 Argentina 1106
405 404 2013-11-13 00:00:00 Rilská 3174/6 25.86 Prague 1 6 Czech Republic 14300
406 405 2013-11-21 00:00:00 541 Del Medio Avenue 0.99 Mountain View 1 CA 20 USA 94040-111
407 406 2013-12-04 00:00:00 801 W 4th Street 1.98 Reno 1 NV 21 USA 89503
408 407 2013-12-04 00:00:00 69 Salem Street 1.98 Boston 1 MA 23 USA 2113
409 408 2013-12-05 00:00:00 319 N. Frances Street 3.96 Madison 1 WI 25 USA 53703
410 409 2013-12-06 00:00:00 796 Dundas Street West 5.94 Toronto 1 ON 29 Canada M6J 1V1
411 410 2013-12-09 00:00:00 Rua dos Campeões Europeus de Viena, 4350 8.91 Porto 1 35 Portugal
412 411 2013-12-14 00:00:00 Porthaninkatu 9 13.86 Helsinki 1 44 Finland 00530
413 412 2013-12-22 00:00:00 12,Community Centre 1.99 Delhi 1 58 India 110017

View File

@@ -1,6 +0,0 @@
ID,name
1,MPEG audio file
2,Protected AAC audio file
3,Protected MPEG-4 video file
4,Purchased AAC audio file
5,AAC audio file
1 ID name
2 1 MPEG audio file
3 2 Protected AAC audio file
4 3 Protected MPEG-4 video file
5 4 Purchased AAC audio file
6 5 AAC audio file

File diff suppressed because it is too large Load Diff

View File

@@ -1,27 +1,22 @@
namespace sap.capire.media.store;
aspect Named {
key ID : Integer default 1;
key ID : Integer;
name : String(120);
}
aspect Person {
key ID : Integer;
lastName : String(20) default 'dummy';
firstName : String(40) default 'dummy';
city : String(40) default 'dummy';
state : String(40) default 'dummy';
address : String(70) default 'dummy';
country : String(40) default 'dummy';
postalCode : String(10) default 123;
phone : String(24) default 'dummy';
fax : String(24) default 'dummy';
email : String(60) default 'dummy@email.com';
password : String(500) default 'dummy';
key ID : Integer;
lastName : String(20) default 'dummy';
firstName : String(40) default 'dummy';
city : String(40) default 'dummy';
address : String(70) default 'dummy';
country : String(40) default 'dummy';
phone : String(24) default 'dummy';
email : String(60) default 'dummy@email.com';
password : String(500) default 'dummy';
}
entity MediaTypes : Named {}
entity Genres {
key ID : Integer;
name : localized String;
@@ -56,25 +51,19 @@ entity Employees : Person {
}
entity Customers : Person {
company : String(80);
supportRep : Association to Employees;
invoices : Association to many Invoices
on invoices.customer = $self;
}
entity Invoices {
key ID : Integer;
customer : Association to Customers;
invoiceDate : DateTime;
billingAddress : String(70) default 'dummy';
billingCity : String(40) default 'dummy';
billingState : String(40) default 'dummy';
billingCountry : String(40) default 'dummy';
billingPostalCode : String(40) default 123;
total : Decimal(10, 2);
invoiceItems : Composition of many InvoiceItems
on invoiceItems.invoice = $self;
status : Integer enum {
key ID : Integer;
customer : Association to Customers;
invoiceDate : DateTime;
total : Decimal(10, 2);
invoiceItems : Composition of many InvoiceItems
on invoiceItems.invoice = $self;
status : Integer enum {
submitted = 1;
canceled = -1;
} default 1;
@@ -92,12 +81,9 @@ entity Tracks {
key ID : Integer;
name : String(200);
album : Association to Albums;
mediaType : Association to MediaTypes;
genre : Association to Genres;
composer : String(220);
milliseconds : Integer default 230619;
bytes : Integer default 3990994;
unitPrice : Decimal(10, 2) default 0.99;
unitPrice : Decimal(10, 2);
virtual alreadyOrdered : Boolean;
// Two compositions below needed for cascade delete track

View File

@@ -27,6 +27,7 @@
},
"cds": {
"ACCESS_TOKEN_SECRET": "secret",
"REFRESH_TOKEN_SECRET": "refresh-secret",
"requires": {
"db": {
"kind": "hana"

View File

@@ -2,28 +2,26 @@ const cds = require("@sap/cds");
const jwt = require("jsonwebtoken");
const { ACCESS_TOKEN_SECRET } = cds.env;
class MyUser extends cds.User {
constructor(attr, roles, id) {
super({ attr, _roles: [...roles, "authenticated-user"], id });
super({ attr, _roles: [...roles], id });
}
}
module.exports = (req, res, next) => {
const { authorization: authHeader } = req.headers;
const token = authHeader && authHeader.split(" ")[1];
if (token === null) {
return res.sendStatus(401);
}
try {
const decodedUser = jwt.verify(token, ACCESS_TOKEN_SECRET);
req.user = new MyUser(
{ ID: decodedUser.ID },
decodedUser.roles,
[decodedUser.roles, "authenticated-user"],
decodedUser.email
);
} catch (error) {
req.user = new MyUser({}, ["anonymous"], "");
req.user = new cds.User();
} finally {
next();
}

View File

@@ -31,18 +31,29 @@ module.exports = async function () {
const utcNowDateTime = moment().utc().format(UTC_DATE_TIME_FORMAT);
const transaction = await db.tx(req);
let { ID: lastInvoiceId } = await transaction.run(
SELECT.one(Invoices).columns("ID").orderBy({ ID: "desc" })
);
let { ID: lastInvoiceItemId } = await transaction.run(
SELECT.one(InvoiceItems).columns("ID").orderBy({ ID: "desc" })
);
const {
results: [{ lastID: invoiceID }],
} = await transaction.run(
INSERT.into(Invoices)
.columns("customer_ID", "total", "invoiceDate")
.values(customerId, total, utcNowDateTime)
.columns("ID", "customer_ID", "total", "invoiceDate")
.values(++lastInvoiceId, customerId, total, utcNowDateTime)
);
await transaction.run(
INSERT.into(InvoiceItems)
.columns("invoice_ID", "track_ID", "unitPrice")
.columns("ID", "invoice_ID", "track_ID", "unitPrice")
.rows(
tracks.map(({ ID: trackID, unitPrice }) => [
tracks.map(({ ID: trackID, unitPrice }, index) => [
lastInvoiceItemId + index + 1,
invoiceID,
trackID,
unitPrice,

View File

@@ -1,13 +1,12 @@
using {sap.capire.media.store as my} from '../db/schema';
service ManageStore @(requires : 'employee') {
entity Tracks as projection on my.Tracks;
entity Albums as projection on my.Albums;
entity Artists as projection on my.Artists;
entity Tracks as projection on my.Tracks;
entity Albums as projection on my.Albums;
entity Artists as projection on my.Artists;
/**
* Below entities exposed due to errors when creating
* Tracks/Albums/Artists
*/
entity MediaTypes as projection on my.MediaTypes;
entity Genres as projection on my.Genres;
entity Genres as projection on my.Genres;
}

View File

@@ -15,11 +15,22 @@ service Users {
supportRep
};
action login(email : String(111), password : String(200)) returns {
roles : array of String(111);
token : String(500);
email : String(500);
ID : Integer;
type AuthData {
accessToken : String(500);
refreshToken : String(500);
ID : Integer;
email : String(500);
roles : array of String(111);
};
action login(email : String(111), password : String(200)) returns AuthData;
action refreshTokens(refreshToken : String(500)) returns {
accessToken : String(500);
refreshToken : String(500);
ID : Integer;
email : String(500);
roles : array of String(111);
};
}

View File

@@ -2,8 +2,9 @@ const cds = require("@sap/cds");
const jwt = require("jsonwebtoken");
const bcrypt = require("bcryptjs");
const { ACCESS_TOKEN_SECRET } = cds.env;
const { ACCESS_TOKEN_SECRET, REFRESH_TOKEN_SECRET } = cds.env;
const ACCESS_TOKEN_EXP_IN = "10m";
const REFRESH_TOKEN_EXPIRES_IN = "20m";
const comparePasswords = async (password, hashedPassword) => {
return new Promise((resolve, reject) =>
@@ -17,10 +18,30 @@ const comparePasswords = async (password, hashedPassword) => {
);
};
const createTokens = (email, ID, roles) => {
const accessToken = jwt.sign({ email, ID, roles }, ACCESS_TOKEN_SECRET, {
expiresIn: ACCESS_TOKEN_EXP_IN,
});
const refreshToken = jwt.sign({ email, ID, roles }, REFRESH_TOKEN_SECRET, {
expiresIn: REFRESH_TOKEN_EXPIRES_IN,
});
return [accessToken, refreshToken];
};
module.exports = async function () {
const db = await cds.connect.to("db");
const { Employees, Customers } = db.entities;
async function getUser(email) {
let userFromDb = await db.run(SELECT.one(Employees).where({ email }));
let roles = ["employee"];
if (!userFromDb) {
userFromDb = await db.run(SELECT.one(Customers).where({ email }));
roles = ["customer"];
}
return Object.assign({}, userFromDb, { roles });
}
this.before("UPDATE", "*", async (req) => {
req.query = req.query.where({ ID: req.user.attr.ID });
});
@@ -32,35 +53,58 @@ module.exports = async function () {
this.on("login", async (req) => {
const { email, password } = req.data;
let userFromDb = await db.run(SELECT.one(Employees).where({ email }));
let roles = ["employee"];
if (!userFromDb) {
userFromDb = await db.run(SELECT.one(Customers).where({ email }));
roles = ["customer"];
}
const userFromDb = await getUser(email);
if (!userFromDb) {
req.reject(401);
}
try {
await comparePasswords(password, userFromDb.password);
} catch (error) {
req.reject(401);
}
const token = jwt.sign(
{ email, ID: userFromDb.ID, roles },
ACCESS_TOKEN_SECRET,
{
expiresIn: ACCESS_TOKEN_EXP_IN,
}
const [accessToken, refreshToken] = createTokens(
userFromDb.email,
userFromDb.ID,
userFromDb.roles
);
return {
token,
roles,
email: userFromDb.email,
accessToken,
refreshToken,
ID: userFromDb.ID,
email: userFromDb.email,
roles: userFromDb.roles,
};
});
this.on("refreshTokens", async (req) => {
let decodedUser;
try {
const { refreshToken } = req.data;
decodedUser = jwt.verify(refreshToken, REFRESH_TOKEN_SECRET);
} catch (error) {
req.reject(401);
}
const userFromDb = await getUser(decodedUser.email);
if (!userFromDb) {
req.reject(401);
}
const [accessToken, refreshToken] = createTokens(
userFromDb.email,
userFromDb.ID,
userFromDb.roles
);
return {
accessToken,
refreshToken,
ID: userFromDb.ID,
email: userFromDb.email,
roles: userFromDb.roles,
};
});
};