Initial load

master
Heiko Mueller 2016-05-26 10:06:40 -04:00
commit 13447bae05
121 changed files with 43095 additions and 0 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
deploy.sh
create-project.mvn.cmd
nb-configuration.xml
target/

17
licenseheader.txt Normal file
View File

@ -0,0 +1,17 @@
<#if licenseFirst??>
${licenseFirst}
</#if>
${licensePrefix}Licensed under the Apache License, Version 2.0 (the "License");
${licensePrefix}you may not use this file except in compliance with the License.
${licensePrefix}You may obtain a copy of the License at
${licensePrefix?replace(" +$", "", "r")}
${licensePrefix} http://www.apache.org/licenses/LICENSE-2.0
${licensePrefix?replace(" +$", "", "r")}
${licensePrefix}Unless required by applicable law or agreed to in writing, software
${licensePrefix}distributed under the License is distributed on an "AS IS" BASIS,
${licensePrefix}WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
${licensePrefix}See the License for the specific language governing permissions and
${licensePrefix}limitations under the License.
<#if licenseLast??>
${licenseLast}
</#if>

74
pom.xml Normal file
View File

@ -0,0 +1,74 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.vizirdb</groupId>
<artifactId>vizir-db</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>vizir-db</name>
<build>
<finalName>vizir-db</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<inherited>true</inherited>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.glassfish.jersey</groupId>
<artifactId>jersey-bom</artifactId>
<version>${jersey.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<!-- use the following artifactId if you don't need servlet 2.x compatibility -->
<!-- artifactId>jersey-container-servlet</artifactId -->
</dependency>
<!-- uncomment this to get JSON support
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
</dependency>
-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.22.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<type>jar</type>
</dependency>
</dependencies>
<properties>
<jersey.version>2.22.2</jersey.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>

View File

@ -0,0 +1,28 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb;
/**
* Exception to signal that the parameter list for a VizUAL script operation is
* missing a mandatory parameter.
*
* @author Heiko Mueller
*/
public class MissingParameterException extends VizirDBException {
public MissingParameterException(String paraName) {
super("Missing parameter: " + paraName);
}
}

View File

@ -0,0 +1,80 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
/**
* A reference object containing a URL and the relationship between the source
* object and the target that is referenced.
*
* @author Heiko Mueller
*/
@XmlType(propOrder={"rel", "href"})
public class ReferenceObject {
public static final String RELATIONSHIP_SELF = "self";
private String _href;
private String _rel;
public ReferenceObject(String rel, String href) {
_rel = rel;
_href = href;
}
/**
* Get reference URL.
*
* @return
*/
@XmlElement(name = "href")
public String getHref() {
return _href;
}
/**
* Get reference relationship.
*
* @return
*/
@XmlElement(name="rel")
public String getRel() {
return _rel;
}
/**
* Set reference URL.
*
* @param url
*/
public void setHref(String url) {
_href = url;
}
/**
* Set reference relationship.
*
* @param rel
*/
public void setRel(String rel) {
_rel = rel;
}
}

View File

@ -0,0 +1,28 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb;
/**
* A self reference object containing the URL to a resource.
*
* @author Heiko Mueller
*/
public class SelfReference extends ReferenceObject {
public SelfReference(String href) {
super(RELATIONSHIP_SELF, href);
}
}

View File

@ -0,0 +1,70 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb;
/**
* Factory class capturing all methods for generating URL to reference resources
* served by the Web API.
*
* @author Heiko Mueller
*/
public class URLFactory {
private final String _baseUrl;
public URLFactory(String baseUrl) {
if (baseUrl.endsWith("/")) {
_baseUrl = baseUrl.substring(0, baseUrl.length() - 1);
} else {
_baseUrl = baseUrl;
}
}
/**
* URL for existing notebook resource.
*
* @param notebookIdentifier Notebook id
* @return
*/
public String getNotebookURL(int notebookIdentifier) {
return _baseUrl + "/notebooks/" + notebookIdentifier;
}
/**
* URL referencing script resource for an existing notebook.
*
* @param notebookIdentifier Notebook id
* @return
*/
public String getNotebookScriptURL(int notebookIdentifier) {
return this.getNotebookURL(notebookIdentifier) + "/script";
}
/**
* URL referencing snapshot of an existing notebook.
*
* @param notebookIdentifier Notebook id
* @param snapshotIndex Snapshot index corresponding to operation in
* the notebook script that generated the
* snapshot
* @return
*/
public String getNotebookSnapshotURL(int notebookIdentifier, int snapshotIndex) {
return this.getNotebookURL(notebookIdentifier) + "/snapshots/" + snapshotIndex;
}
}

View File

@ -0,0 +1,77 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb;
/**
* A general class to subsume different types of implementation-specific
* exceptions for common interface methods.
*
* @author Heiko Mueller
*/
public class VizirDBException extends Exception {
/*
* Exactly one of these two variables will not be null.
*/
private Exception _exception = null;
private String _message = null;
/**
* Throw an exception with specific message. Main use is for conditions
* during the execution of XArch that require an exception to be thrown.
*
* @param message
*/
public VizirDBException(String message) {
_message = message;
}
/**
* Wrapper around another exception. Main use is to unify throw clause
* of XArch methods.
*
* @param exception
*/
public VizirDBException(Exception exception) {
_exception = exception;
}
/**
* Print the stack trace of the captured exception or the stack trace
* where this exception was thrown.
*/
@Override
public void printStackTrace() {
if (_exception != null) {
_exception.printStackTrace();
} else {
super.printStackTrace();
}
}
@Override
public String toString() {
if (_exception != null) {
return _exception.toString() + " in " + _exception.getStackTrace()[0].toString();
} else if (_message != null) {
return _message;
} else {
throw new java.lang.IllegalStateException();
}
}
}

View File

@ -0,0 +1,67 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.database;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
/**
* A cell in a notebook data snapshot. Each cell has a unique id and a value. For
* a particular snapshot the cell is mapped to a position defined by the column
* and row index.
*
* @author Heiko Mueller
*/
@XmlType(propOrder = {"id", "col", "row", "value"})
@XmlRootElement(name = "cell")
public class Cell {
private final int _col;
private final int _id;
private final int _row;
private final String _value;
public Cell(int id, int col, int row, String value) {
_id = id;
_col = col;
_row = row;
_value = value;
}
@XmlElement(name = "col")
public int getColumn() {
return _col;
}
@XmlElement(name = "id")
public int getIdentitifer() {
return _id;
}
@XmlElement(name = "row")
public int getRow() {
return _row;
}
@XmlElement(name = "value")
public String getValue() {
return _value;
}
}

View File

@ -0,0 +1,157 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.database;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
import org.vizirdb.script.VizUALScript;
import org.vizirdb.ReferenceObject;
import org.vizirdb.SelfReference;
import org.vizirdb.URLFactory;
/**
* A notebook managed by a Vizir Database Server instance. Each notebook has a
* unique identifier and a descriptive name.
*
* @author Heiko Mueller
*/
@XmlType(propOrder = {"identifier", "name", "links"})
@XmlRootElement(name = "notebook")
public class Notebook implements Comparable<Notebook> {
private int _cellCount = 0;
private final int _identifier;
private String _name;
private final VizUALScript _script;
private final URLFactory _urls;
public Notebook(int identifier, String name, VizUALScript script, URLFactory urls) {
if (name == null) {
throw new java.lang.IllegalArgumentException("Invalid dataset name: null");
}
if (script == null) {
throw new java.lang.IllegalArgumentException("Script: null");
}
if (urls == null) {
throw new java.lang.IllegalArgumentException("URL factory: null");
}
_identifier = identifier;
_name = name;
_script = script;
_urls = urls;
}
public Notebook(int identifier, String name, URLFactory urls) {
this(identifier, name, new VizUALScript(identifier, urls), urls);
}
@Override
public int compareTo(Notebook notebook) {
return this.getName().compareTo(notebook.getName());
}
/**
* Unique dataset identifier.
*
* @return
*/
@XmlElement(name = "identifier")
public int getIdentifier() {
return _identifier;
}
/**
* List of references associated with a notebook.
*
* @return
*/
@XmlElement(name = "links")
public List<ReferenceObject> getLinks() {
ArrayList<ReferenceObject> links = new ArrayList<>();
/*
* Self reference
*/
ReferenceObject self = new SelfReference(_urls.getNotebookURL(_identifier));
links.add(self);
/*
* Notebook script reference
*/
links.add(new ReferenceObject("script", _urls.getNotebookScriptURL(_identifier)));
/*
* Current snapshot reference
*/
if (_script.getOperations().size() > 0) {
links.add(new ReferenceObject("currentSnapshot", _urls.getNotebookSnapshotURL(_identifier, _script.getOperations().size() - 1)));
}
return links;
}
/**
* Descriptive dataset name.
*
* @return
*/
@XmlElement(name = "name")
public String getName() {
return _name;
}
/**
* VizUAL script that is associated with the notebook.
*
* @return
*/
@XmlTransient
public VizUALScript getScript() {
return _script;
}
/**
* Next unique cell identifier. Called when adding a new cell to the
* notebook.
*
* @return
*/
public synchronized int nextCellId() {
return _cellCount++;
}
/**
* Set the notebook name.
*
* @param name
*/
public void setName(String name) {
_name = name;
}
}

View File

@ -0,0 +1,161 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.database;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import org.vizirdb.URLFactory;
import org.vizirdb.VizirDBException;
import org.vizirdb.script.actor.CSVFileLoad;
import org.vizirdb.script.OpParameter;
import org.vizirdb.script.Operation;
import org.vizirdb.script.OperationType;
import org.vizirdb.script.actor.Actor;
import org.vizirdb.script.actor.CellUpdate;
import org.vizirdb.script.actor.ColumnDelete;
import org.vizirdb.script.actor.ColumnInsert;
import org.vizirdb.script.actor.ColumnMove;
import org.vizirdb.script.actor.ColumnRename;
import org.vizirdb.script.actor.RowDelete;
import org.vizirdb.script.actor.RowInserte;
import org.vizirdb.script.actor.RowMove;
/**
* For test purposes. Maintains a list of notebooks in a CSV file.
*
* @author Heiko Mueller
*/
public class SimpleVizirDBM implements VizirDB {
private final HashMap<OperationType, Actor> _actors;
private final HashMap<Integer, Notebook> _notebooks;
private final HashMap<String, Snapshot> _snapshots;
private final URLFactory _urls;
public SimpleVizirDBM(URLFactory urls, File baseDirectory) {
_urls = urls;
_notebooks = new HashMap<>();
_snapshots = new HashMap<>();
_actors = new HashMap<>();
_actors.put(OperationType.DeleteColumn, new ColumnDelete(this));
_actors.put(OperationType.DeleteRow, new RowDelete(this));
_actors.put(OperationType.InsertColumn, new ColumnInsert(this));
_actors.put(OperationType.InsertRow, new RowInserte(this));
_actors.put(OperationType.LoadFile, new CSVFileLoad(new File(baseDirectory.getAbsolutePath() + File.separator + "files")));
_actors.put(OperationType.MoveColumn, new ColumnMove(this));
_actors.put(OperationType.MoveRow, new RowMove(this));
_actors.put(OperationType.RenameColumn, new ColumnRename(this));
_actors.put(OperationType.UpdateCell, new CellUpdate(this));
}
@Override
public int appendOperation(int notebookId, Operation op) throws org.vizirdb.VizirDBException {
if (_notebooks.containsKey(notebookId)) {
Notebook notebook = _notebooks.get(notebookId);
int snapshotIndex = notebook.getScript().getOperations().size();
_snapshots.put(notebookId + "#" + snapshotIndex, _actors.get(op.getType()).exec(notebook, snapshotIndex, this.getParameterMap(op.getParameters()), _urls));
notebook.getScript().getOperations().add(new Operation(notebookId, notebook.getScript().getOperations().size(), op.getType(), op.getParameters(), _urls));
return snapshotIndex;
} else {
return -1;
}
}
@Override
public synchronized Notebook createNotebook(String name) {
/*
* The identifier of the new notebook is the determined by maxId, the
* largest identifier of all existing notebooks. The new identifier is
* maxId + 1.
*/
int maxId = -1;
for (Notebook notebook : _notebooks.values()) {
if (notebook.getIdentifier() > maxId) {
maxId = notebook.getIdentifier();
}
}
Notebook notebook = new Notebook(maxId + 1, name, _urls);
_notebooks.put(notebook.getIdentifier(), notebook);
return notebook;
}
@Override
public synchronized boolean deleteNotebook(int notebookId) {
if (_notebooks.containsKey(notebookId)) {
_notebooks.remove(notebookId);
return true;
} else {
return false;
}
}
@Override
public synchronized Notebook getNotebook(int notebookId) {
return _notebooks.get(notebookId);
}
@Override
public Snapshot getNotebookSnapshot(int notebookId, int snapshotIndex) {
return _snapshots.get(notebookId + "#" + snapshotIndex);
}
private HashMap<String, String> getParameterMap(List<OpParameter> parameters) throws org.vizirdb.VizirDBException {
HashMap<String, String> paraMap = new HashMap<>();
for (OpParameter param : parameters) {
if (paraMap.containsKey(param.getName())) {
throw new VizirDBException("Duplicate parameter: " + param.getName());
}
paraMap.put(param.getName(), param.getValue());
}
return paraMap;
}
@Override
public synchronized List<Notebook> listNotebooks() {
ArrayList<Notebook> objects = new ArrayList<>(_notebooks.values());
Collections.sort(objects);
return objects;
}
@Override
public synchronized boolean updateNotebook(int notebookId, String name) {
if (_notebooks.containsKey(notebookId)) {
Notebook notebook = _notebooks.get(notebookId);
if (!notebook.getName().equals(name)) {
notebook.setName(name);
return true;
} else {
return false;
}
} else {
return false;
}
}
}

View File

@ -0,0 +1,90 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.database;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import org.vizirdb.ReferenceObject;
import org.vizirdb.SelfReference;
import org.vizirdb.URLFactory;
/**
* Snapshot of the data in a notebook. Each operation in the script that is
* associated with a notebook will modify the current snapshot.
*
* A snapshot contains all the data cells in the snapshot and the mapping of
* cells to positions in the spreadsheet.
*
* @author Heiko Mueller
*/
@XmlType(propOrder = {"columns", "rows", "cells", "links"})
@XmlRootElement(name = "snapshot")
public class Snapshot {
private final List<Cell> _cells;
private final List<String> _columns;
private final List<ReferenceObject> _links;
private final int _rows;
public Snapshot(int notebookId, int snapshotIndex, List<String> columns, List<Cell> cells, URLFactory urls) {
_columns = columns;
_cells = cells;
/*
* The number of rows is defined by the maximum row number + 1
*/
int maxRowNumber = -1;
for (Cell cell : _cells) {
if (cell.getRow() > maxRowNumber) {
maxRowNumber = cell.getRow();
}
}
_rows = maxRowNumber + 1;
/*
* Add seld reference and reference to notebook
*/
_links = new ArrayList<>();
_links.add(new SelfReference(urls.getNotebookSnapshotURL(notebookId, snapshotIndex)));
_links.add(new ReferenceObject("notebook", urls.getNotebookURL(notebookId)));
}
@XmlElement(name = "cells")
public List<Cell> getCells() {
return _cells;
}
@XmlElement(name = "columns")
public List<String> getColumns() {
return _columns;
}
@XmlElement(name = "links")
public List<ReferenceObject> getLinks() {
return _links;
}
@XmlElement(name = "rows")
public int getRows() {
return _rows;
}
}

View File

@ -0,0 +1,97 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.database;
import java.util.List;
import org.vizirdb.script.Operation;
/**
* Vizir Database Server instance. Manages and provides access to notebooks.
*
* @author Heiko Mueller
*/
public interface VizirDB {
/**
* Append an operation to the script of an existing notebook.
*
* @param notebookId Notebook identifier
* @param op Operation definition
* @return Index of the appended operation in the notebook
* script. This is equal to size - 1 of the script
* after the append. The result is -1 if the notebook
* does not exist.
* @throws org.vizirdb.VizirDBException
*/
public int appendOperation(int notebookId, Operation op) throws org.vizirdb.VizirDBException;
/**
* Create a new notebook with the given name
*
* @param name Notebook name
* @return Created notebook
* @throws org.vizirdb.VizirDBException
*/
public Notebook createNotebook(String name) throws org.vizirdb.VizirDBException;
/**
* Delete the notebook with the given identifier.
*
* @param notebookId Notebook identifier
* @return True if the notebook was deleted successfully.
* @throws org.vizirdb.VizirDBException
*/
public boolean deleteNotebook(int notebookId) throws org.vizirdb.VizirDBException;
/**
* Returns the notebook with the given identifier.
*
* @param notebookId Notebook identifier
* @return Notebook with given identifier. The result is null
* if no notebook with the given identifier exists.
* @throws org.vizirdb.VizirDBException
*/
public Notebook getNotebook(int notebookId) throws org.vizirdb.VizirDBException;
/**
* Return the snapshot with the given index for the notebook with given
* identifier.
*
* @param notebookId Notebook identifier
* @param snapshotIndex Snapshot index
* @return Snapshot or null if snapshot does not exists
* @throws org.vizirdb.VizirDBException
*/
public Snapshot getNotebookSnapshot(int notebookId, int snapshotIndex) throws org.vizirdb.VizirDBException;
/**
* Returns a list of all notebooks managed by this server instance.
*
* @return
* @throws org.vizirdb.VizirDBException
*/
public List<Notebook> listNotebooks() throws org.vizirdb.VizirDBException;
/**
* Update the name of the notebook with the given identifier.
*
* @param notebookId Notebook identifier
* @param name New notebook name
* @return True if the notebook exists and was updated. False,
* if the notebook did not exists or the new name
* equals the current notebook name.
* @throws org.vizirdb.VizirDBException
*/
public boolean updateNotebook(int notebookId, String name) throws org.vizirdb.VizirDBException;
}

View File

@ -0,0 +1,84 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.script;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
/**
* Operation parameter are represented as (key, value)-pairs.
*
* @author Heiko Mueller
*/
@XmlType(propOrder={"name", "value"})
@XmlRootElement(name = "parameter")
public class OpParameter {
private String _name;
private String _value;
public OpParameter() {
this(null, null);
}
public OpParameter(String name, String value) {
_name = name;
_value = value;
}
/**
* Get parameter name.
*
* @return
*/
@XmlElement(name = "name")
public String getName() {
return _name;
}
/**
* Get parameter value.
*
* @return
*/
@XmlElement(name = "value")
public String getValue() {
return _value;
}
/**
* Set parameter name.
*
* @param name
*/
public void setName(String name) {
_name = name;
}
/**
* Set parameter value.
*
* @param value
*/
public void setValue(String value) {
_value = value;
}
}

View File

@ -0,0 +1,107 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.script;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import org.vizirdb.ReferenceObject;
import org.vizirdb.URLFactory;
/**
* Operation in a VizUAL script.
*
* @author Heiko Mueller
*/
@XmlType(propOrder={"type", "parameters", "links"})
@XmlRootElement(name = "operation")
public class Operation {
private final List<ReferenceObject> _links;
private List<OpParameter> _parameters;
private OperationType _type;
public Operation() {
_type = null;
_parameters = null;
_links = new ArrayList<>();
}
public Operation(int notebookId, int index, OperationType type, List<OpParameter> parameters, URLFactory urls) {
_type = type;
_parameters = parameters;
_links = new ArrayList<>();
_links.add(new ReferenceObject("snapshot", urls.getNotebookSnapshotURL(notebookId, index)));
}
/**
* GetLlst of references associated with this operations. Contains a link
* to the notebook snapshot that is the result of this operation.
*
* @return
*/
@XmlElement(name = "links")
public List<ReferenceObject> getLinks() {
return _links;
}
/**
* List of parameters for the operation. The elements in the list are
* operation-specific.
*
* @return
*/
@XmlElement(name = "parameters")
public List<OpParameter> getParameters() {
return _parameters;
}
/**
* Operation type.
*
* @return
*/
@XmlElement(name = "type")
public OperationType getType() {
return _type;
}
/**
* Set the list of parameters for the operations.
*
* @param parameters
*/
public void setParameters(List<OpParameter> parameters) {
_parameters = parameters;
}
/**
* Set the operation type.
*
* @param type
*/
public void setType(OperationType type) {
_type = type;
}
}

View File

@ -0,0 +1,72 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.script;
/**
* Enumeration of operation types. Lists valid operations in a VizUAL script.
* Each operations takes an operation-specific set of parameters:
*
* DeleteColumn
* column: Index of column to be deleted
*
* DeleteRow
* row: Index of row to be deleted
*
* InsertColumn
* name: Optional. New column's name
* position: Index position where the new column is inserted. Column at that
* position (and all following columns) will move right.
*
* InsertRow
* position: Index position where the new row will be inserted. The row at
* the position and all following rows will move down.
*
* LoadFile
* file: File name. A file with this name has to exists in the resources/files
* directory
* format: The CSV file format (CSV, TDF, EXCEL)
* headline: Boolean value indication whether the first row in the file
* contains column names (true) or not (false).
*
* MoveColumn
* column: Index position of column to be moved
* position: Target position of column to be moved
*
* MoveRow
* row: Index position of row to be moved
* position: Target position of row to be moved
*
* RenameColumn
* column: Index of column to be renamed
* name: New column name
*
* UpdateCell
* column: Column index of cell to be updated
* row: Row index of cell to be updated
* value: New cell value
*
* @author Heiko Mueller
*/
public enum OperationType {
DeleteColumn,
DeleteRow,
InsertColumn,
InsertRow,
LoadFile,
MoveColumn,
MoveRow,
RenameColumn,
UpdateCell
}

View File

@ -0,0 +1,73 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.script;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import org.vizirdb.ReferenceObject;
import org.vizirdb.SelfReference;
import org.vizirdb.URLFactory;
/**
* A sequence of operations in a curation workflow. Individual operations are
* parameterized operators in the imperative VizUAL scripting language.
* @author Heiko Mueller
*/
@XmlType(propOrder = {"operations", "links"})
@XmlRootElement(name = "script")
public class VizUALScript {
private final List<ReferenceObject> _links;
private final List<Operation> _operations;
public VizUALScript(int notebookId, List<Operation> operations, URLFactory urls) {
_operations = operations;
_links = new ArrayList<>();
_links.add(new SelfReference(urls.getNotebookScriptURL(notebookId)));
_links.add(new ReferenceObject("notebook", urls.getNotebookURL(notebookId)));
}
public VizUALScript(int notebookId, URLFactory urls) {
this(notebookId, new ArrayList<Operation>(), urls);
}
/**
* Get references for this script. Contains self reference and a reference
* to the notebook.
*
* @return
*/
@XmlElement(name = "links")
public List<ReferenceObject> getLinks() {
return _links;
}
/**
* Get sequence of operations contained in the script.
*
* @return
*/
@XmlElement(name = "operations")
public List<Operation> getOperations() {
return _operations;
}
}

View File

@ -0,0 +1,40 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.script.actor;
import java.util.HashMap;
import org.vizirdb.URLFactory;
import org.vizirdb.database.Notebook;
import org.vizirdb.database.Snapshot;
/**
* Actors evaluate script operations on a given notebook.
*
* @author Heiko Mueller
*/
public interface Actor {
/**
* Execute the operation represented by this actor on the given notebook.
* Returns the new snapshot for the notebook.
*
* @param notebook The notebook to update
* @param snapshotIndex The index of the new snapshot
* @param parameters List of user-provided parameters
* @param urls URL factory
* @return
* @throws org.vizirdb.VizirDBException
*/
public Snapshot exec(Notebook notebook, int snapshotIndex, HashMap<String, String> parameters, URLFactory urls) throws org.vizirdb.VizirDBException;
}

View File

@ -0,0 +1,109 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.script.actor;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
import org.vizirdb.MissingParameterException;
import org.vizirdb.URLFactory;
import org.vizirdb.VizirDBException;
import org.vizirdb.database.Cell;
import org.vizirdb.database.Notebook;
import org.vizirdb.database.Snapshot;
/**
*
* @author heiko
*/
public class CSVFileLoad implements Actor {
public static final String PARAMETER_FILE = "file";
public static final String PARAMETER_FORMAT = "format";
public static final String PARAMETER_HEADLINE = "headline";
private final File _directory;
public CSVFileLoad(File directory) {
_directory = directory;
}
@Override
public Snapshot exec(Notebook notebook, int snapshotIndex, HashMap<String, String> parameters, URLFactory urls) throws org.vizirdb.VizirDBException {
if (!parameters.containsKey(PARAMETER_FILE)) {
throw new MissingParameterException(PARAMETER_FILE);
}
File file = new File(_directory.getAbsolutePath() + File.separator + parameters.get(PARAMETER_FILE));
if (!file.exists()) {
throw new VizirDBException("Unknown file: " + parameters.get(PARAMETER_FILE));
}
CSVFormat format;
if (parameters.containsKey(PARAMETER_FORMAT)) {
format = CSVFormat.valueOf(parameters.get(PARAMETER_FORMAT));
} else {
format = CSVFormat.Predefined.Default.getFormat();
}
boolean headline = false;
if (parameters.containsKey(PARAMETER_HEADLINE)) {
headline = Boolean.parseBoolean(parameters.get(PARAMETER_HEADLINE));
}
ArrayList<String> columns = new ArrayList<>();
ArrayList<Cell> cells = new ArrayList<>();
try (CSVParser parser = new CSVParser(new FileReader(file), format)) {
List<CSVRecord> records = parser.getRecords();
int offset = 0;
if (headline) {
CSVRecord record = records.get(0);
for (int iColumn = 0; iColumn < record.size(); iColumn++) {
columns.add(record.get(iColumn));
}
offset = 1;
} else {
int maxCols = 0;
for (CSVRecord record : records) {
if (record.size() > maxCols) {
maxCols = record.size();
}
}
for (int iCol = 0; iCol < maxCols; iCol++) {
columns.add("");
}
}
int rows = 0;
for (int iRecord = offset; iRecord < records.size(); iRecord++) {
CSVRecord record = records.get(iRecord);
for (int iValue = 0; iValue < Math.min(columns.size(), record.size()); iValue++) {
cells.add(new Cell(notebook.nextCellId(), iValue, rows, record.get(iValue)));
}
rows++;
}
} catch (java.io.IOException ioException) {
throw new VizirDBException(ioException);
}
return new Snapshot(notebook.getIdentifier(), snapshotIndex, columns, cells, urls);
}
}

View File

@ -0,0 +1,104 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.script.actor;
import java.util.ArrayList;
import java.util.HashMap;
import org.vizirdb.MissingParameterException;
import org.vizirdb.URLFactory;
import org.vizirdb.VizirDBException;
import org.vizirdb.database.Cell;
import org.vizirdb.database.Notebook;
import org.vizirdb.database.Snapshot;
import org.vizirdb.database.VizirDB;
/**
* Update a cell in a notebook snapshot. The cell is identified by the column
* and row index positions (starting at 0).
*
* @author Heiko Mueller
*/
public class CellUpdate implements Actor {
public static final String PARAMETER_COLUMN = "column";
public static final String PARAMETER_ROW = "row";
public static final String PARAMETER_VALUE = "value";
private final VizirDB _vdb;
public CellUpdate(VizirDB vdb) {
_vdb = vdb;
}
@Override
public Snapshot exec(Notebook notebook, int snapshotIndex, HashMap<String, String> parameters, URLFactory urls) throws org.vizirdb.VizirDBException {
if (!parameters.containsKey(PARAMETER_COLUMN)) {
throw new MissingParameterException(PARAMETER_COLUMN);
}
if (!parameters.containsKey(PARAMETER_ROW)) {
throw new MissingParameterException(PARAMETER_ROW);
}
int column = -1;
try {
column = Integer.parseInt(parameters.get(PARAMETER_COLUMN));
} catch (java.lang.NumberFormatException nfe) {
throw new VizirDBException(nfe);
}
if (column < 0) {
throw new VizirDBException("Invalid column: " + column);
}
int row = -1;
try {
row = Integer.parseInt(parameters.get(PARAMETER_ROW));
} catch (java.lang.NumberFormatException nfe) {
throw new VizirDBException(nfe);
}
if (row < 0) {
throw new VizirDBException("Invalid row: " + row);
}
Snapshot snapshot = _vdb.getNotebookSnapshot(notebook.getIdentifier(), snapshotIndex - 1);
if (snapshot == null) {
throw new VizirDBException("Missing snapshot: " + (snapshotIndex - 1));
}
if (column >= snapshot.getColumns().size()) {
throw new VizirDBException("Invalid column: " + column);
}
if (row >= snapshot.getRows()) {
throw new VizirDBException("Invalid row: " + row);
}
String value = "*missing*";
if (parameters.containsKey(PARAMETER_VALUE)) {
value = parameters.get(PARAMETER_VALUE);
}
ArrayList<String> columns = new ArrayList<>(snapshot.getColumns());
ArrayList<Cell> cells = new ArrayList<>();
for (Cell cell : snapshot.getCells()) {
if ((cell.getColumn() == column) && (cell.getRow() == row)) {
cells.add(new Cell(cell.getIdentitifer(), cell.getColumn(), cell.getRow(), value));
} else {
cells.add(cell);
}
}
return new Snapshot(notebook.getIdentifier(), snapshotIndex, columns, cells, urls);
}
}

View File

@ -0,0 +1,83 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.script.actor;
import java.util.ArrayList;
import java.util.HashMap;
import org.vizirdb.MissingParameterException;
import org.vizirdb.URLFactory;
import org.vizirdb.VizirDBException;
import org.vizirdb.database.Cell;
import org.vizirdb.database.Notebook;
import org.vizirdb.database.Snapshot;
import org.vizirdb.database.VizirDB;
/**
* Delete a column in a notebook snapshot. The column is identified by the index
* position (starting at 0). All columns that are to the right of the deleted
* column are moved to the left.
*
* @author Heiko Mueller
*/
public class ColumnDelete implements Actor {
public static final String PARAMETER_COLUMN = "column";
private final VizirDB _vdb;
public ColumnDelete(VizirDB vdb) {
_vdb = vdb;
}
@Override
public Snapshot exec(Notebook notebook, int snapshotIndex, HashMap<String, String> parameters, URLFactory urls) throws org.vizirdb.VizirDBException {
if (!parameters.containsKey(PARAMETER_COLUMN)) {
throw new MissingParameterException(PARAMETER_COLUMN);
}
int column = -1;
try {
column = Integer.parseInt(parameters.get(PARAMETER_COLUMN));
} catch (java.lang.NumberFormatException nfe) {
throw new VizirDBException(nfe);
}
if (column < 0) {
throw new VizirDBException("Invalid column: " + column);
}
Snapshot snapshot = _vdb.getNotebookSnapshot(notebook.getIdentifier(), snapshotIndex - 1);
if (snapshot == null) {
throw new VizirDBException("Missing snapshot: " + (snapshotIndex - 1));
}
if (column >= snapshot.getColumns().size()) {
throw new VizirDBException("Invalid column: " + column);
}
ArrayList<String> columns = new ArrayList<>(snapshot.getColumns());
columns.remove(column);
ArrayList<Cell> cells = new ArrayList<>();
for (Cell cell : snapshot.getCells()) {
if (cell.getColumn() < column) {
cells.add(cell);
} else if (cell.getColumn() > column) {
cells.add(new Cell(cell.getIdentitifer(), cell.getColumn() - 1, cell.getRow(), cell.getValue()));
}
}
return new Snapshot(notebook.getIdentifier(), snapshotIndex, columns, cells, urls);
}
}

View File

@ -0,0 +1,93 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.script.actor;
import java.util.ArrayList;
import java.util.HashMap;
import org.vizirdb.MissingParameterException;
import org.vizirdb.URLFactory;
import org.vizirdb.VizirDBException;
import org.vizirdb.database.Cell;
import org.vizirdb.database.Notebook;
import org.vizirdb.database.Snapshot;
import org.vizirdb.database.VizirDB;
/**
* Insert a column in a notebook snapshot. The column is identified by the index
* position (starting at 0). The column that currently is at that index position
* (and all following columns) are moved to the right of the inserted column.
*
* @author Heiko Mueller
*/
public class ColumnInsert implements Actor {
public static final String PARAMETER_NAME = "name";
public static final String PARAMETER_POSITION = "position";
private final VizirDB _vdb;
public ColumnInsert(VizirDB vdb) {
_vdb = vdb;
}
@Override
public Snapshot exec(Notebook notebook, int snapshotIndex, HashMap<String, String> parameters, URLFactory urls) throws org.vizirdb.VizirDBException {
if (!parameters.containsKey(PARAMETER_POSITION)) {
throw new MissingParameterException(PARAMETER_POSITION);
}
int position = -1;
try {
position = Integer.parseInt(parameters.get(PARAMETER_POSITION));
} catch (java.lang.NumberFormatException nfe) {
throw new VizirDBException(nfe);
}
if (position < 0) {
throw new VizirDBException("Invalid position: " + position);
}
Snapshot snapshot = _vdb.getNotebookSnapshot(notebook.getIdentifier(), snapshotIndex - 1);
if (snapshot == null) {
throw new VizirDBException("Missing snapshot: " + (snapshotIndex - 1));
}
if (position > snapshot.getColumns().size()) {
throw new VizirDBException("Invalid position: " + position);
}
String name = "";
if (parameters.containsKey(PARAMETER_NAME)) {
name = parameters.get(PARAMETER_NAME);
}
ArrayList<String> columns = new ArrayList<>(snapshot.getColumns());
columns.add(position, name);
ArrayList<Cell> cells = new ArrayList<>();
for (Cell cell : snapshot.getCells()) {
if (cell.getColumn() < position) {
cells.add(cell);
} else if (cell.getColumn() >= position) {
cells.add(new Cell(cell.getIdentitifer(), cell.getColumn() + 1, cell.getRow(), cell.getValue()));
}
}
for (int iRow = 0; iRow < snapshot.getRows(); iRow++) {
cells.add(new Cell(notebook.nextCellId(), position, iRow, ""));
}
return new Snapshot(notebook.getIdentifier(), snapshotIndex, columns, cells, urls);
}
}

View File

@ -0,0 +1,126 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.script.actor;
import java.util.ArrayList;
import java.util.HashMap;
import org.vizirdb.MissingParameterException;
import org.vizirdb.URLFactory;
import org.vizirdb.VizirDBException;
import org.vizirdb.database.Cell;
import org.vizirdb.database.Notebook;
import org.vizirdb.database.Snapshot;
import org.vizirdb.database.VizirDB;
/**
* Move a column in a notebook snapshot. The column is identified by the index
* position (starting at 0). In the resulting snapshot, the column will be at
* the position identified by parameter 'position'. If the column is moved to
* the right, all other columns in the move interval (including the column at
* position) will move left. If the column is moved left, all columns (including
* the colum at position) will move right.
*
* @author Heiko Mueller
*/
public class ColumnMove implements Actor {
public static final String PARAMETER_COLUMN = "column";
public static final String PARAMETER_POSITION = "position";
private final VizirDB _vdb;
public ColumnMove(VizirDB vdb) {
_vdb = vdb;
}
@Override
public Snapshot exec(Notebook notebook, int snapshotIndex, HashMap<String, String> parameters, URLFactory urls) throws org.vizirdb.VizirDBException {
if (!parameters.containsKey(PARAMETER_COLUMN)) {
throw new MissingParameterException(PARAMETER_COLUMN);
}
int column = -1;
try {
column = Integer.parseInt(parameters.get(PARAMETER_COLUMN));
} catch (java.lang.NumberFormatException nfe) {
throw new VizirDBException(nfe);
}
if (column < 0) {
throw new VizirDBException("Invalid column: " + column);
}
int position = -1;
try {
position = Integer.parseInt(parameters.get(PARAMETER_POSITION));
} catch (java.lang.NumberFormatException nfe) {
throw new VizirDBException(nfe);
}
if (position < 0) {
throw new VizirDBException("Invalid target column: " + position);
}
Snapshot snapshot = _vdb.getNotebookSnapshot(notebook.getIdentifier(), snapshotIndex - 1);
if (snapshot == null) {
throw new VizirDBException("Missing snapshot: " + (snapshotIndex - 1));
}
if (column >= snapshot.getColumns().size()) {
throw new VizirDBException("Invalid column: " + column);
}
if (position >= snapshot.getColumns().size()) {
throw new VizirDBException("Invalid target column: " + position);
}
if (column == position) {
return new Snapshot(notebook.getIdentifier(), snapshotIndex, snapshot.getColumns(), snapshot.getCells(), urls);
}
boolean isMoveToRight = (position > column);
ArrayList<String> columns = new ArrayList<>(snapshot.getColumns());
String name = columns.get(column);
columns.remove(column);
columns.add(position, name);
int moveIntervalLeft = Math.min(column, position);
int moveIntervalRight = Math.max(column, position);
ArrayList<Cell> cells = new ArrayList<>();
for (Cell cell : snapshot.getCells()) {
System.out.print("[" + cell.getColumn() + ", " + cell.getRow() + "] -> " );
if ((cell.getColumn() < moveIntervalLeft) || (cell.getColumn() > moveIntervalRight)) {
System.out.println("[" + cell.getColumn() + ", " + cell.getRow() + "]");
cells.add(cell);
} else {
int targetCol;
if (isMoveToRight) {
if (cell.getColumn() == column) {
targetCol = position;
} else {
targetCol = cell.getColumn() - 1;
}
} else {
if (cell.getColumn() == column) {
targetCol = position;
} else {
targetCol = cell.getColumn() + 1;
}
}
System.out.println("[" + targetCol + ", " + cell.getRow() + "]");
cells.add(new Cell(cell.getIdentitifer(), targetCol, cell.getRow(), cell.getValue()));
}
}
return new Snapshot(notebook.getIdentifier(), snapshotIndex, columns, cells, urls);
}
}

View File

@ -0,0 +1,82 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.script.actor;
import java.util.ArrayList;
import java.util.HashMap;
import org.vizirdb.MissingParameterException;
import org.vizirdb.URLFactory;
import org.vizirdb.VizirDBException;
import org.vizirdb.database.Cell;
import org.vizirdb.database.Notebook;
import org.vizirdb.database.Snapshot;
import org.vizirdb.database.VizirDB;
/**
* Rename a column in a notebook snapshot. The column is identified by the index
* position (starting at 0).
*
* @author Heiko Mueller
*/
public class ColumnRename implements Actor {
public static final String PARAMETER_COLUMN = "column";
public static final String PARAMETER_NAME = "name";
private final VizirDB _vdb;
public ColumnRename(VizirDB vdb) {
_vdb = vdb;
}
@Override
public Snapshot exec(Notebook notebook, int snapshotIndex, HashMap<String, String> parameters, URLFactory urls) throws org.vizirdb.VizirDBException {
if (!parameters.containsKey(PARAMETER_COLUMN)) {
throw new MissingParameterException(PARAMETER_COLUMN);
}
int column = -1;
try {
column = Integer.parseInt(parameters.get(PARAMETER_COLUMN));
} catch (java.lang.NumberFormatException nfe) {
throw new VizirDBException(nfe);
}
if (column < 0) {
throw new VizirDBException("Invalid column: " + column);
}
Snapshot snapshot = _vdb.getNotebookSnapshot(notebook.getIdentifier(), snapshotIndex - 1);
if (snapshot == null) {
throw new VizirDBException("Missing snapshot: " + (snapshotIndex - 1));
}
if (column >= snapshot.getColumns().size()) {
throw new VizirDBException("Invalid column: " + column);
}
String name = "";
if (parameters.containsKey(PARAMETER_NAME)) {
name = parameters.get(PARAMETER_NAME);
}
ArrayList<String> columns = new ArrayList<>(snapshot.getColumns());
columns.remove(column);
columns.add(column, name);
ArrayList<Cell> cells = new ArrayList<>(snapshot.getCells());
return new Snapshot(notebook.getIdentifier(), snapshotIndex, columns, cells, urls);
}
}

View File

@ -0,0 +1,82 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.script.actor;
import java.util.ArrayList;
import java.util.HashMap;
import org.vizirdb.MissingParameterException;
import org.vizirdb.URLFactory;
import org.vizirdb.VizirDBException;
import org.vizirdb.database.Cell;
import org.vizirdb.database.Notebook;
import org.vizirdb.database.Snapshot;
import org.vizirdb.database.VizirDB;
/**
* Delete a row in a notebook snapshot. The row is identified by the index
* position (starting at 0). All rows that are below the deleted row are moved
* up.
*
* @author Heiko Mueller
*/
public class RowDelete implements Actor {
public static final String PARAMETER_ROW = "row";
private final VizirDB _vdb;
public RowDelete(VizirDB vdb) {
_vdb = vdb;
}
@Override
public Snapshot exec(Notebook notebook, int snapshotIndex, HashMap<String, String> parameters, URLFactory urls) throws org.vizirdb.VizirDBException {
if (!parameters.containsKey(PARAMETER_ROW)) {
throw new MissingParameterException(PARAMETER_ROW);
}
int row = -1;
try {
row = Integer.parseInt(parameters.get(PARAMETER_ROW));
} catch (java.lang.NumberFormatException nfe) {
throw new VizirDBException(nfe);
}
if (row < 0) {
throw new VizirDBException("Invalid row: " + row);
}
Snapshot snapshot = _vdb.getNotebookSnapshot(notebook.getIdentifier(), snapshotIndex - 1);
if (snapshot == null) {
throw new VizirDBException("Missing snapshot: " + (snapshotIndex - 1));
}
if (row >= snapshot.getRows()) {
throw new VizirDBException("Invalid row: " + row);
}
ArrayList<String> columns = new ArrayList<>(snapshot.getColumns());
ArrayList<Cell> cells = new ArrayList<>();
for (Cell cell : snapshot.getCells()) {
if (cell.getRow() < row) {
cells.add(cell);
} else if (cell.getRow() > row) {
cells.add(new Cell(cell.getIdentitifer(), cell.getColumn(), cell.getRow() - 1, cell.getValue()));
}
}
return new Snapshot(notebook.getIdentifier(), snapshotIndex, columns, cells, urls);
}
}

View File

@ -0,0 +1,86 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.script.actor;
import java.util.ArrayList;
import java.util.HashMap;
import org.vizirdb.MissingParameterException;
import org.vizirdb.URLFactory;
import org.vizirdb.VizirDBException;
import org.vizirdb.database.Cell;
import org.vizirdb.database.Notebook;
import org.vizirdb.database.Snapshot;
import org.vizirdb.database.VizirDB;
/**
* Insert a row in a notebook snapshot. The row is identified by the index
* position (starting at 0). The current row at the index position and all
* following rows are moved down.
*
* @author Heiko Mueller
*/
public class RowInserte implements Actor {
public static final String PARAMETER_POSITION = "position";
private final VizirDB _vdb;
public RowInserte(VizirDB vdb) {
_vdb = vdb;
}
@Override
public Snapshot exec(Notebook notebook, int snapshotIndex, HashMap<String, String> parameters, URLFactory urls) throws org.vizirdb.VizirDBException {
if (!parameters.containsKey(PARAMETER_POSITION)) {
throw new MissingParameterException(PARAMETER_POSITION);
}
int position = -1;
try {
position = Integer.parseInt(parameters.get(PARAMETER_POSITION));
} catch (java.lang.NumberFormatException nfe) {
throw new VizirDBException(nfe);
}
if (position < 0) {
throw new VizirDBException("Invalid position: " + position);
}
Snapshot snapshot = _vdb.getNotebookSnapshot(notebook.getIdentifier(), snapshotIndex - 1);
if (snapshot == null) {
throw new VizirDBException("Missing snapshot: " + (snapshotIndex - 1));
}
if (position > snapshot.getRows()) {
throw new VizirDBException("Invalid position: " + position);
}
ArrayList<String> columns = new ArrayList<>(snapshot.getColumns());
ArrayList<Cell> cells = new ArrayList<>();
for (Cell cell : snapshot.getCells()) {
if (cell.getRow() < position) {
cells.add(cell);
} else if (cell.getRow() >= position) {
cells.add(new Cell(cell.getIdentitifer(), cell.getColumn(), cell.getRow() + 1, cell.getValue()));
}
}
for (int iColumn = 0; iColumn < columns.size(); iColumn++) {
cells.add(new Cell(notebook.nextCellId(), iColumn, position, ""));
}
return new Snapshot(notebook.getIdentifier(), snapshotIndex, columns, cells, urls);
}
}

View File

@ -0,0 +1,122 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.script.actor;
import java.util.ArrayList;
import java.util.HashMap;
import org.vizirdb.MissingParameterException;
import org.vizirdb.URLFactory;
import org.vizirdb.VizirDBException;
import org.vizirdb.database.Cell;
import org.vizirdb.database.Notebook;
import org.vizirdb.database.Snapshot;
import org.vizirdb.database.VizirDB;
/**
* Move a row in a notebook snapshot. The row is identified by the index
* position (starting at 0). In the resulting snapshot, the row will be at
* the position identified by parameter 'position'. If the row is moved down,
* all other rows in the move interval (including the row at position) will
* move up. If the row is moved up, all rows (including the row at position)
* will move down.
*
* @author Heiko Mueller
*/
public class RowMove implements Actor {
public static final String PARAMETER_ROW = "row";
public static final String PARAMETER_POSITION = "position";
private final VizirDB _vdb;
public RowMove(VizirDB vdb) {
_vdb = vdb;
}
@Override
public Snapshot exec(Notebook notebook, int snapshotIndex, HashMap<String, String> parameters, URLFactory urls) throws org.vizirdb.VizirDBException {
if (!parameters.containsKey(PARAMETER_ROW)) {
throw new MissingParameterException(PARAMETER_ROW);
}
int row = -1;
try {
row = Integer.parseInt(parameters.get(PARAMETER_ROW));
} catch (java.lang.NumberFormatException nfe) {
throw new VizirDBException(nfe);
}
if (row < 0) {
throw new VizirDBException("Invalid row: " + row);
}
int position = -1;
try {
position = Integer.parseInt(parameters.get(PARAMETER_POSITION));
} catch (java.lang.NumberFormatException nfe) {
throw new VizirDBException(nfe);
}
if (position < 0) {
throw new VizirDBException("Invalid target row: " + position);
}
Snapshot snapshot = _vdb.getNotebookSnapshot(notebook.getIdentifier(), snapshotIndex - 1);
if (snapshot == null) {
throw new VizirDBException("Missing snapshot: " + (snapshotIndex - 1));
}
if (row >= snapshot.getRows()) {
throw new VizirDBException("Invalid row: " + row);
}
if (position >= snapshot.getRows()) {
throw new VizirDBException("Invalid target row: " + row);
}
if (row == position) {
return new Snapshot(notebook.getIdentifier(), snapshotIndex, snapshot.getColumns(), snapshot.getCells(), urls);
}
boolean isMoveDown = (position > row);
ArrayList<String> columns = new ArrayList<>(snapshot.getColumns());
int moveIntervalLeft = Math.min(row, position);
int moveIntervalRight = Math.max(row, position);
ArrayList<Cell> cells = new ArrayList<>();
for (Cell cell : snapshot.getCells()) {
if ((cell.getRow() < moveIntervalLeft) || (cell.getRow() > moveIntervalRight)) {
cells.add(cell);
} else {
int targetRow;
if (isMoveDown) {
if (cell.getRow() == row) {
targetRow = position;
} else {
targetRow = cell.getRow() - 1;
}
} else {
if (cell.getRow() == row) {
targetRow = position;
} else {
targetRow = cell.getRow() + 1;
}
}
cells.add(new Cell(cell.getIdentitifer(), cell.getColumn(), targetRow, cell.getValue()));
}
}
return new Snapshot(notebook.getIdentifier(), snapshotIndex, columns, cells, urls);
}
}

View File

@ -0,0 +1,238 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.server;
import java.io.File;
import java.util.List;
import javax.inject.Singleton;
import javax.servlet.ServletContext;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import org.vizirdb.database.Notebook;
import org.vizirdb.database.SimpleVizirDBM;
import org.vizirdb.database.VizirDB;
import org.vizirdb.script.Operation;
import org.vizirdb.ReferenceObject;
import org.vizirdb.URLFactory;
import org.vizirdb.database.Snapshot;
import org.vizirdb.script.VizUALScript;
/**
* The Vizir Database Web API Server.
*
* @author Heiko Mueller
*/
@Path("/")
@Singleton
public class DatabaseServer {
private final URLFactory _urls;
private final VizirDB _vdb;
/**
* Initialize the database web API server once.
* @param context
*/
public DatabaseServer(@Context ServletContext context) {
_urls = new URLFactory("http://vizirdb.7mi5uspdsy.us-west-2.elasticbeanstalk.com/api/v1");
_vdb = new SimpleVizirDBM(_urls, new File(context.getRealPath("/WEB-INF/resources")));
}
/*
* NOTEBOOK
*/
/**
* Returns the list of dataset resources managed by the server.
*
* @param body Request body containing the name of the new notebook
* @return The created notebook object
* @throws java.net.MalformedURLException
* @throws org.vizirdb.VizirDBException
*/
@Path("/notebooks")
@POST
@Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_XML})
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_XML})
public Notebook createNotebook(NamedObject body) throws java.net.MalformedURLException, org.vizirdb.VizirDBException {
return _vdb.createNotebook(body.getName());
}
/**
* Returns the list of dataset resources managed by the server.
*
* @return
* @throws java.net.MalformedURLException
* @throws org.vizirdb.VizirDBException
*/
@Path("/notebooks")
@GET
@Produces({MediaType.APPLICATION_JSON})
public List<Notebook> getNotebookListing() throws java.net.MalformedURLException, org.vizirdb.VizirDBException {
return _vdb.listNotebooks();
}
/**
* Delete the notebook with the given identifier.
*
* @param notebookIdentifier Notebook identifier
* @return True, if the notebook existed and was
* deleted successfully.
* @throws org.vizirdb.VizirDBException
*/
@Path("/notebooks/{notebookIdentifier}")
@DELETE
@Produces({MediaType.APPLICATION_JSON})
public OpResult deleteNotebook(@PathParam("notebookIdentifier") int notebookIdentifier) throws org.vizirdb.VizirDBException {
OpResult response = new OpResult();
response.setResult(_vdb.deleteNotebook(notebookIdentifier));
return response;
}
/**
* Return a single notebook.
*
* @param notebookIdentifier Notebook identifier
* @return
* @throws java.net.MalformedURLException
* @throws org.vizirdb.VizirDBException
*/
@Path("/notebooks/{notebookIdentifier}")
@GET
@Produces({MediaType.APPLICATION_JSON})
public Notebook getNotebook(@PathParam("notebookIdentifier") int notebookIdentifier) throws java.net.MalformedURLException, org.vizirdb.VizirDBException {
Notebook notebook = _vdb.getNotebook(notebookIdentifier);
if (notebook != null) {
return notebook;
} else {
throw new WebApplicationException(404);
}
}
/**
* Update the name of an existing notebook.
*
* @param notebookIdentifier Notebook identifier
* @param body Object containing the new notebook name
* @return
* @throws org.vizirdb.VizirDBException
*/
@Path("/notebooks/{notebookIdentifier}")
@POST
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
public OpResult updateNotebook(@PathParam("notebookIdentifier") int notebookIdentifier, NamedObject body) throws org.vizirdb.VizirDBException {
OpResult response = new OpResult();
response.setResult(_vdb.updateNotebook(notebookIdentifier, body.getName()));
return response;
}
/*
* SCRIPT
*/
/**
* Return the VizUAL script associated with a given notebook.
*
* @param notebookIdentifier Notebook identifier
* @param body Operation definition
* @return Reference to snapshot created by the
* operation
* @throws java.net.MalformedURLException
* @throws org.vizirdb.VizirDBException
*/
@Path("/notebooks/{notebookIdentifier}/script")
@POST
@Produces({MediaType.APPLICATION_JSON})
public ReferenceObject appendScriptOperation(@PathParam("notebookIdentifier") int notebookIdentifier, Operation body) throws java.net.MalformedURLException, org.vizirdb.VizirDBException {
Notebook notebook = _vdb.getNotebook(notebookIdentifier);
if (notebook != null) {
int snapshotIndex = _vdb.appendOperation(notebookIdentifier, body);
return new ReferenceObject("snapshot", _urls.getNotebookSnapshotURL(notebookIdentifier, snapshotIndex));
} else {
throw new WebApplicationException(404);
}
}
/**
* Return the VizUAL script associated with a given notebook.
*
* @param notebookIdentifier Notebook identifier
* @return
* @throws java.net.MalformedURLException
* @throws org.vizirdb.VizirDBException
*/
@Path("/notebooks/{notebookIdentifier}/script")
@GET
@Produces({MediaType.APPLICATION_JSON})
public VizUALScript getNotebookScript(@PathParam("notebookIdentifier") int notebookIdentifier) throws java.net.MalformedURLException, org.vizirdb.VizirDBException {
Notebook notebook = _vdb.getNotebook(notebookIdentifier);
if (notebook != null) {
return notebook.getScript();
} else {
throw new WebApplicationException(404);
}
}
/*
* SNAPSHOTS
*/
/**
* Return the snapshot generated by the script operation with the given
* index.
*
* @param notebookIdentifier Notebook identifier
* @param snapshotIndex Snapshot index; corresponds to index of
* operation in the notebook's script that
* generated the snapshot
* @return
* @throws java.net.MalformedURLException
* @throws org.vizirdb.VizirDBException
*/
@Path("/notebooks/{notebookIdentifier}/snapshots/{snapshotIndex}")
@GET
@Produces({MediaType.APPLICATION_JSON})
public Snapshot getNotebookSnapshot(@PathParam("notebookIdentifier") int notebookIdentifier, @PathParam("snapshotIndex") int snapshotIndex) throws java.net.MalformedURLException, org.vizirdb.VizirDBException {
Notebook notebook = _vdb.getNotebook(notebookIdentifier);
if (notebook != null) {
Snapshot snapshot = _vdb.getNotebookSnapshot(notebookIdentifier, snapshotIndex);
if (snapshot != null) {
return snapshot;
} else {
throw new WebApplicationException(404);
}
} else {
throw new WebApplicationException(404);
}
}
}

View File

@ -0,0 +1,41 @@
/*
* Copyright 2016 heiko.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.server;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
/**
* A simple named object.
*
* @author Heiko Mueller
*/
@XmlRootElement
public class NamedObject {
private String _name;
@XmlElement(name = "name")
public String getName() {
return _name;
}
public void setName(String name) {
_name = name;
}
}

View File

@ -0,0 +1,42 @@
/*
* Copyright 2016 heiko.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.server;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
/**
* Simple response object for server requests that update or delete resources.
* Represents the return value of the invoked modification operation.
*
* @author Heiko Mueller
*/
@XmlRootElement(name = "response")
public class OpResult {
private boolean _result = false;
@XmlElement(name = "result")
public boolean getResult() {
return _result;
}
public void setResult(boolean result) {
_result = result;
}
}

View File

@ -0,0 +1,55 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.vizirdb.test;
import java.io.File;
import java.util.ArrayList;
import org.vizirdb.URLFactory;
import org.vizirdb.database.Notebook;
import org.vizirdb.database.SimpleVizirDBM;
import org.vizirdb.script.OpParameter;
import org.vizirdb.script.Operation;
import org.vizirdb.script.OperationType;
/**
*
* @author heiko
*/
public class TestMove {
public static void main(String[] args) {
Operation loadFileOp = new Operation();
loadFileOp.setType(OperationType.LoadFile);
loadFileOp.setParameters(new ArrayList<OpParameter>());
loadFileOp.getParameters().add(new OpParameter("file", "32yu-maz2.tsv"));
loadFileOp.getParameters().add(new OpParameter("format", "TDF"));
loadFileOp.getParameters().add(new OpParameter("headline", "true"));
Operation moveColOp = new Operation();
moveColOp.setType(OperationType.MoveColumn);
moveColOp.setParameters(new ArrayList<OpParameter>());
moveColOp.getParameters().add(new OpParameter("column", "2"));
moveColOp.getParameters().add(new OpParameter("position", "1"));
try {
SimpleVizirDBM db = new SimpleVizirDBM(new URLFactory("http://vizirdb.7mi5uspdsy.us-west-2.elasticbeanstalk.com/api/v1"), new File("/home/heiko/work/src/curation/vizir/vizir-db/src/main/webapp/WEB-INF/resources"));
Notebook nb = db.createNotebook("MB");
db.appendOperation(nb.getIdentifier(), loadFileOp);
db.appendOperation(nb.getIdentifier(), moveColOp);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}

View File

@ -0,0 +1,92 @@
{
"type": "LoadFile",
"parameters": [
{
"name": "file",
"value": "32yu-maz2.tsv"
},
{
"name": "format",
"value": "TDF"
},
{
"name": "headline",
"value": "true"
}
]
}
{
"type": "DeleteColumn",
"parameters": [
{
"name": "column",
"value": "2"
}
]
}
{
"type": "RenameColumn",
"parameters": [
{
"name": "column",
"value": "1"
},
{
"name": "name",
"value": "Family Size"
}
]
}
{
"type": "MoveColumn",
"parameters": [
{
"name": "column",
"value": "1"
},{
"name": "position",
"value": "0"
}
]
}
{
"type": "MoveRow",
"parameters": [
{
"name": "row",
"value": "1"
},{
"name": "position",
"value": "5"
}
]
}
{
"type": "UpdateCell",
"parameters": [
{
"name": "column",
"value": "0"
},{
"name": "row",
"value": "0"
},{
"name": "value",
"value": "MyFamily"
}
]
}

View File

@ -0,0 +1,30 @@
coftype description renewal_fee orig_fee premise_flg
A49 SUPERVISION OF AEROSOL 15 25 Y
C06 FULL/SELF SERVE CNG DISPENSIN 15 25 N
C07 SUP. SELF SERVICE CNG STATION 15 25 Y
C08 MAINTENANCE CNG FACILITY 15 25 N
C09 SUPERVISE CNG STATION 15 25 Y
C10 SUPERVISE LNG PLANT 15 25 Y
C11 SUPERVISE SNG PLANT 15 25 Y
C12 DIRECT MFG FLAMMABLE MIXTURES 15 25 Y
C13 DIRECT WHLSLE DRUG/CHEM SUPPLY 15 25 Y
C14 "SUPERVISING NON\u2010PRODUCTION " 15 25 Y
C15 SUPERVISE FLAMEPROOFING 15 25 N
C16 DIRECT MANUFACTURE COMB MIX 15 25 Y
C17 DIRECT NITROCELLULOSE STORAGE 15 25 Y
C18 DIRECT NITROCELLULOSE PLANT 15 25 Y
C19 DIRECT NITROCELLULOSE USE 15 25 Y
C20 DIRECT MOTION PICTURE FILM 15 25 N
C21 PROCESS MOTION PICTURE FILM 15 25 Y
C23 MANAGE CLEANING, 138'F SOLVENT 15 25 Y
C24 SUPERVISE BULK ACID STORAGE 15 25 Y
C25 MANAGE TECHNICAL ESTABLISHMENT 15 25 Y
C26 STORE/USE OF FLAM/COMB LIQUID 15 25 N
C91 HAZARDOUS MATERIALS 15 25 Y
C98 CON SUP/STOR/USE FLAM/COM LIQ 15 25 N
C99 CON DIS/SUP/MAINT CNG STA/FAC 15 25 N
E10 BLASTER (ALL PURPOSE) 5 25 N
E11 BLASTER (SHAFT And TUNNEL) 5 25 N
E12 DEMO OF BLDG USE EXPLOSIVES 5 25 N
E13 UNDERWATER BLASTING 5 25 N
E14 POWDER CARRIER 5 25 N
1 coftype description renewal_fee orig_fee premise_flg
2 A49 SUPERVISION OF AEROSOL 15 25 Y
3 C06 FULL/SELF SERVE CNG DISPENSIN 15 25 N
4 C07 SUP. SELF SERVICE CNG STATION 15 25 Y
5 C08 MAINTENANCE CNG FACILITY 15 25 N
6 C09 SUPERVISE CNG STATION 15 25 Y
7 C10 SUPERVISE LNG PLANT 15 25 Y
8 C11 SUPERVISE SNG PLANT 15 25 Y
9 C12 DIRECT MFG FLAMMABLE MIXTURES 15 25 Y
10 C13 DIRECT WHLSLE DRUG/CHEM SUPPLY 15 25 Y
11 C14 SUPERVISING NON\u2010PRODUCTION 15 25 Y
12 C15 SUPERVISE FLAMEPROOFING 15 25 N
13 C16 DIRECT MANUFACTURE COMB MIX 15 25 Y
14 C17 DIRECT NITROCELLULOSE STORAGE 15 25 Y
15 C18 DIRECT NITROCELLULOSE PLANT 15 25 Y
16 C19 DIRECT NITROCELLULOSE USE 15 25 Y
17 C20 DIRECT MOTION PICTURE FILM 15 25 N
18 C21 PROCESS MOTION PICTURE FILM 15 25 Y
19 C23 MANAGE CLEANING, 138'F SOLVENT 15 25 Y
20 C24 SUPERVISE BULK ACID STORAGE 15 25 Y
21 C25 MANAGE TECHNICAL ESTABLISHMENT 15 25 Y
22 C26 STORE/USE OF FLAM/COMB LIQUID 15 25 N
23 C91 HAZARDOUS MATERIALS 15 25 Y
24 C98 CON SUP/STOR/USE FLAM/COM LIQ 15 25 N
25 C99 CON DIS/SUP/MAINT CNG STA/FAC 15 25 N
26 E10 BLASTER (ALL PURPOSE) 5 25 N
27 E11 BLASTER (SHAFT And TUNNEL) 5 25 N
28 E12 DEMO OF BLDG USE EXPLOSIVES 5 25 N
29 E13 UNDERWATER BLASTING 5 25 N
30 E14 POWDER CARRIER 5 25 N

View File

@ -0,0 +1,50 @@
family_size income_more_than hhc_options_reduced_fee_level income_less_than
1 0 1 16335
2 0 1 22065
3 0 1 27795
4 0 1 33525
5 0 1 39255
6 0 1 44985
7 0 1 50715
1 16336 2 21780
2 22066 2 29420
3 27796 2 37060
4 33526 2 44700
5 39256 2 52340
6 44986 2 59980
7 50716 2 67620
1 21781 3 27225
2 29421 3 36775
3 37061 3 46325
4 44701 3 55875
5 52341 3 65425
6 59981 3 74975
7 67621 3 84525
1 27226 4 32670
2 36776 4 44130
3 46326 4 55590
4 55876 4 67050
5 65426 4 78510
6 74976 4 89970
7 84526 4 101430
1 32671 5 38115
2 44131 5 51485
3 55591 5 64855
4 67051 5 78225
5 78511 5 91595
6 89971 5 104965
7 101431 5 118335
1 38116 6 43560
2 51486 6 58840
3 64856 6 74120
4 78226 6 89400
5 91596 6 104680
6 104966 6 119960
7 118336 6 135240
1 43561 7
2 58841 7
3 74121 7
4 89401 7
5 104681 7
6 119961 7
7 135241 7
1 family_size income_more_than hhc_options_reduced_fee_level income_less_than
2 1 0 1 16335
3 2 0 1 22065
4 3 0 1 27795
5 4 0 1 33525
6 5 0 1 39255
7 6 0 1 44985
8 7 0 1 50715
9 1 16336 2 21780
10 2 22066 2 29420
11 3 27796 2 37060
12 4 33526 2 44700
13 5 39256 2 52340
14 6 44986 2 59980
15 7 50716 2 67620
16 1 21781 3 27225
17 2 29421 3 36775
18 3 37061 3 46325
19 4 44701 3 55875
20 5 52341 3 65425
21 6 59981 3 74975
22 7 67621 3 84525
23 1 27226 4 32670
24 2 36776 4 44130
25 3 46326 4 55590
26 4 55876 4 67050
27 5 65426 4 78510
28 6 74976 4 89970
29 7 84526 4 101430
30 1 32671 5 38115
31 2 44131 5 51485
32 3 55591 5 64855
33 4 67051 5 78225
34 5 78511 5 91595
35 6 89971 5 104965
36 7 101431 5 118335
37 1 38116 6 43560
38 2 51486 6 58840
39 3 64856 6 74120
40 4 78226 6 89400
41 5 91596 6 104680
42 6 104966 6 119960
43 7 118336 6 135240
44 1 43561 7
45 2 58841 7
46 3 74121 7
47 4 89401 7
48 5 104681 7
49 6 119961 7
50 7 135241 7

View File

@ -0,0 +1,141 @@
site oel_tthm_g_l_a lraa_haa5_g_l_b oel_haa5_g_l_b location result_haa5_g_l_b sample_date analysis_date_haa5_g_l_b result_tthm_g_l_a lraa_tthm_g_l_a analysis_date_tthm_g_l_a
15150 35 31 31 "SS - IFO 1420 E/S Grand Concourse, 1st SS S/O E 171st St, 20\""" 26 2014-11-05T00:00:00 2014-11-11T00:00:00 27 33 2014-11-05T00:00:00
18650 28 31 31 "SS - N/S Dewey Ave, btw Quincy & Swinton Aves, 12\""" 27 2014-11-05T00:00:00 2014-11-11T00:00:00 25 26 2014-11-05T00:00:00
23450 33 33 33 "SS - N/S Jefferson Avenue, 2nd SS W/O Lewis Avenue, 20\""" 28 2014-11-05T00:00:00 2014-11-11T00:00:00 30 31 2014-11-05T00:00:00
24350 40 34 34 "SS - W/S Brighton 11th Street, 2nd SS S/O Cass Place, 12\""" 30 2014-11-05T00:00:00 2014-11-11T00:00:00 37 37 2014-11-05T00:00:00
31750 44 34 33 "SS - IFO 427 N/S W 26th St, 2nd SS W/O 9th Ave, 12\""" 27 2014-11-05T00:00:00 2014-11-11T00:00:00 39 41 2014-11-05T00:00:00
31850 42 34 32 "SS - IFO 82 S/S Warren St, 2nd SS E/O Greenwich St, 12\""" 26 2014-11-05T00:00:00 2014-11-11T00:00:00 39 38 2014-11-06T00:00:00
32350 42 32 31 "SS - IFO 116 E/S Ave C, 2nd SS N/O E 7th St, 12\""" 26 2014-11-05T00:00:00 2014-11-11T00:00:00 36 39 2014-11-06T00:00:00
33450 42 37 37 "SS - IFO 135 N/S W 112th St, 2nd SS W/O St Nicholas Ave, 12\""" 30 2014-11-05T00:00:00 2014-11-12T00:00:00 38 37 2014-11-06T00:00:00
33950 39 36 36 "SS - N/S E 104th Street, 2nd SS E/O 3rd Avenue, 12\""" 30 2014-11-05T00:00:00 2014-11-13T00:00:00 34 36 2014-11-06T00:00:00
37950 38 35 34 "SS - IFO 325 N/S E 12th Street, 2nd SS E/O 2nd Ave, 12\""" 28 2014-11-05T00:00:00 2014-11-13T00:00:00 32 36 2014-11-06T00:00:00
38250 40 41 40 "SS - IFO 309 N/S E 87th St, 2nd SS W/O 1st Ave, 12\""" 33 2014-11-05T00:00:00 2014-11-13T00:00:00 34 38 2014-11-06T00:00:00
39650 41 37 37 "SS - IFO 229 N/S E 49th St, 2nd SS W/O 2nd Ave, 12\""" 29 2014-11-05T00:00:00 2014-11-13T00:00:00 36 38 2014-11-06T00:00:00
44350 39 35 34 "SS - IFO 21-55 N/S 34th Ave, 1st SS W/O 24th St, 12\""" 29 2014-11-05T00:00:00 2014-11-13T00:00:00 37 36 2014-11-06T00:00:00
45250 34 35 35 "SS - E/S Beach 58th St, 2nd SS N/O Beach Channel Drive, 12\""" 31 2014-11-05T00:00:00 2014-11-13T00:00:00 29 32 2014-11-06T00:00:00
50250 37 45 45 "SS - IFO 937 N/S Victory Blvd, 2nd SS E/O Highland Ave, 20\""" 37 2014-11-05T00:00:00 2014-11-13T00:00:00 33 35 2014-11-06T00:00:00
50750 44 40 40 "SS - E/S Woodhull Ave, 1st SS S/O Albourne Ave, 8\""" 40 2014-11-05T00:00:00 2014-11-13T00:00:00 39 42 2014-11-06T00:00:00
50850 40 45 45 "SS - IFO 512 W/S Arlene St, 1st SS N/O Dawson Ct, 12\""" 41 2014-11-05T00:00:00 2014-11-13T00:00:00 37 38 2014-11-06T00:00:00
52050 44 42 40 "SS - IFO 218 W/S Nicholas Ave, 1st SS S/O Charles Ave, 12\""" 35 2014-11-05T00:00:00 2014-11-13T00:00:00 43 39 2014-11-06T00:00:00
58650 43 45 45 "SS - IFO 510 W/S Main St, 2nd SS S/O Hylan Blvd, 12\""" 40 2014-11-05T00:00:00 2014-11-14T00:00:00 40 41 2014-11-06T00:00:00
77650 35 35 35 SS - OPP 110-52 E/S 207th St 32 2014-11-05T00:00:00 2014-11-14T00:00:00 35 32 2014-11-06T00:00:00
15150 26 30 25 "SS - IFO 1420 E/S Grand Concourse, 1st SS S/O E 171st St, 20\""" 22 2015-02-04T00:00:00 2015-02-06T00:00:00 15 32 2015-02-05T00:00:00
18650 21 29 25 "SS - N/S Dewey Ave, btw Quincy & Swinton Aves, 12\""" 20 2015-02-04T00:00:00 2015-02-06T00:00:00 13 25 2015-02-09T00:00:00
23450 25 32 27 "SS - N/S Jefferson Avenue, 2nd SS W/O Lewis Avenue, 20\""" 23 2015-02-04T00:00:00 2015-02-06T00:00:00 15 30 2015-02-05T00:00:00
24350 29 33 29 "SS - W/S Brighton 11th Street, 2nd SS S/O Cass Place, 12\""" 25 2015-02-04T00:00:00 2015-02-05T00:00:00 17 35 2015-02-05T00:00:00
31750 32 33 28 "SS - IFO 427 N/S W 26th St, 2nd SS W/O 9th Ave, 12\""" 27 2015-02-04T00:00:00 2015-02-05T00:00:00 20 39 2015-02-05T00:00:00
31850 29 32 27 "SS - IFO 82 S/S Warren St, 2nd SS E/O Greenwich St, 12\""" 24 2015-02-04T00:00:00 2015-02-05T00:00:00 16 36 2015-02-05T00:00:00
32350 31 30 27 "SS - IFO 116 E/S Ave C, 2nd SS N/O E 7th St, 12\""" 25 2015-02-04T00:00:00 2015-02-06T00:00:00 17 37 2015-02-05T00:00:00
33450 30 35 28 "SS - IFO 135 N/S W 112th St, 2nd SS W/O St Nicholas Ave, 12\""" 24 2015-02-04T00:00:00 2015-02-06T00:00:00 17 36 2015-02-05T00:00:00
33950 29 34 28 "SS - N/S E 104th Street, 2nd SS E/O 3rd Avenue, 12\""" 23 2015-02-04T00:00:00 2015-02-06T00:00:00 16 35 2015-02-05T00:00:00
37950 29 33 27 "SS - IFO 325 N/S E 12th Street, 2nd SS E/O 2nd Ave, 12\""" 24 2015-02-04T00:00:00 2015-02-06T00:00:00 17 34 2015-02-05T00:00:00
38250 30 38 29 "SS - IFO 309 N/S E 87th St, 2nd SS W/O 1st Ave, 12\""" 23 2015-02-04T00:00:00 2015-02-06T00:00:00 16 36 2015-02-05T00:00:00
39650 30 35 28 "SS - IFO 229 N/S E 49th St, 2nd SS W/O 2nd Ave, 12\""" 24 2015-02-04T00:00:00 2015-02-06T00:00:00 16 36 2015-02-05T00:00:00
44350 28 33 27 "SS - IFO 21-55 N/S 34th Ave, 1st SS W/O 24th St, 12\""" 24 2015-02-04T00:00:00 2015-02-06T00:00:00 15 34 2015-02-09T00:00:00
45250 26 34 31 "SS - E/S Beach 58th St, 2nd SS N/O Beach Channel Drive, 12\""" 27 2015-02-04T00:00:00 2015-02-06T00:00:00 17 31 2015-02-05T00:00:00
50250 27 42 37 "SS - IFO 937 N/S Victory Blvd, 2nd SS E/O Highland Ave, 20\""" 27 2015-02-04T00:00:00 2015-02-07T00:00:00 16 33 2015-02-05T00:00:00
50750 33 37 36 "SS - E/S Woodhull Ave, 1st SS S/O Albourne Ave, 8\""" 30 2015-02-04T00:00:00 2015-02-06T00:00:00 21 39 2015-02-05T00:00:00
50850 29 42 38 "SS - IFO 512 W/S Arlene St, 1st SS N/O Dawson Ct, 12\""" 30 2015-02-04T00:00:00 2015-02-07T00:00:00 18 35 2015-02-05T00:00:00
52050 32 39 36 "SS - IFO 218 W/S Nicholas Ave, 1st SS S/O Charles Ave, 12\""" 30 2015-02-04T00:00:00 2015-02-07T00:00:00 19 38 2015-02-05T00:00:00
58650 34 43 39 "SS - IFO 510 W/S Main St, 2nd SS S/O Hylan Blvd, 12\""" 32 2015-02-04T00:00:00 2015-02-07T00:00:00 23 39 2015-02-05T00:00:00
77650 26 33 29 SS - OPP 110-52 E/S 207th St 24 2015-02-04T00:00:00 2015-02-07T00:00:00 15 30 2015-02-05T00:00:00
15150 26 28 29 "SS - IFO 1420 E/S Grand Concourse, 1st SS S/O E 171st St, 20\""" 34 2015-05-05T00:00:00 2015-05-07T00:00:00 30 30 2015-05-06T00:00:00
18650 22 29 29 "SS - N/S Dewey Ave, btw Quincy & Swinton Aves, 12\""" 34 2015-05-05T00:00:00 2015-05-07T00:00:00 25 24 2015-05-06T00:00:00
23450 31 30 31 "SS - N/S Jefferson Avenue, 2nd SS W/O Lewis Avenue, 20\""" 36 2015-05-05T00:00:00 2015-05-08T00:00:00 39 31 2015-05-06T00:00:00
24350 32 32 34 "SS - W/S Brighton 11th Street, 2nd SS S/O Cass Place, 12\""" 40 2015-05-05T00:00:00 2015-05-08T00:00:00 36 34 2015-05-05T00:00:00
31750 36 31 33 "SS - IFO 427 N/S W 26th St, 2nd SS W/O 9th Ave, 12\""" 39 2015-05-05T00:00:00 2015-05-08T00:00:00 42 37 2015-05-05T00:00:00
31850 34 30 32 "SS - IFO 82 S/S Warren St, 2nd SS E/O Greenwich St, 12\""" 38 2015-05-05T00:00:00 2015-05-08T00:00:00 41 36 2015-05-05T00:00:00
32350 33 31 33 "SS - IFO 116 E/S Ave C, 2nd SS N/O E 7th St, 12\""" 40 2015-05-05T00:00:00 2015-05-08T00:00:00 39 36 2015-05-05T00:00:00
33450 36 32 34 "SS - IFO 135 N/S W 112th St, 2nd SS W/O St Nicholas Ave, 12\""" 40 2015-05-05T00:00:00 2015-05-08T00:00:00 44 37 2015-05-05T00:00:00
33950 34 32 34 "SS - N/S E 104th Street, 2nd SS E/O 3rd Avenue, 12\""" 41 2015-05-05T00:00:00 2015-05-08T00:00:00 43 36 2015-05-05T00:00:00
37950 27 30 32 "SS - IFO 325 N/S E 12th Street, 2nd SS E/O 2nd Ave, 12\""" 37 2015-05-05T00:00:00 2015-05-09T00:00:00 30 33 2015-05-05T00:00:00
38250 29 32 33 "SS - IFO 309 N/S E 87th St, 2nd SS W/O 1st Ave, 12\""" 37 2015-05-05T00:00:00 2015-05-13T00:00:00 32 34 2015-05-05T00:00:00
39650 27 31 31 "SS - IFO 229 N/S E 49th St, 2nd SS W/O 2nd Ave, 12\""" 36 2015-05-05T00:00:00 2015-05-09T00:00:00 27 32 2015-05-05T00:00:00
44350 28 29 30 "SS - IFO 21-55 N/S 34th Ave, 1st SS W/O 24th St, 12\""" 33 2015-05-05T00:00:00 2015-05-09T00:00:00 29 31 2015-05-05T00:00:00
45250 27 33 32 "SS - E/S Beach 58th St, 2nd SS N/O Beach Channel Drive, 12\""" 35 2015-05-05T00:00:00 2015-05-09T00:00:00 30 29 2015-05-05T00:00:00
50250 26 39 34 "SS - IFO 937 N/S Victory Blvd, 2nd SS E/O Highland Ave, 20\""" 36 2015-05-05T00:00:00 2015-05-09T00:00:00 28 30 2015-05-05T00:00:00
50750 35 37 34 "SS - E/S Woodhull Ave, 1st SS S/O Albourne Ave, 8\""" 33 2015-05-05T00:00:00 2015-05-09T00:00:00 39 38 2015-05-06T00:00:00
50850 30 40 37 "SS - IFO 512 W/S Arlene St, 1st SS N/O Dawson Ct, 12\""" 38 2015-05-05T00:00:00 2015-05-09T00:00:00 32 33 2015-05-06T00:00:00
52050 32 38 35 "SS - IFO 218 W/S Nicholas Ave, 1st SS S/O Charles Ave, 12\""" 38 2015-05-05T00:00:00 2015-05-09T00:00:00 33 35 2015-05-05T00:00:00
58650 34 39 36 "SS - IFO 510 W/S Main St, 2nd SS S/O Hylan Blvd, 12\""" 35 2015-05-05T00:00:00 2015-05-09T00:00:00 36 37 2015-05-06T00:00:00
77650 27 32 31 SS - OPP 110-52 E/S 207th St 34 2015-05-05T00:00:00 2015-05-09T00:00:00 28 30 2015-05-05T00:00:00
15150 26 28 29 "SS - IFO 1420 E/S Grand Concourse, 1st SS S/O E 171st St, 20\""" 34 2015-05-05T00:00:00 2015-05-07T00:00:00 30 30 2015-05-06T00:00:00
18650 22 29 29 "SS - N/S Dewey Ave, btw Quincy & Swinton Aves, 12\""" 34 2015-05-05T00:00:00 2015-05-07T00:00:00 25 24 2015-05-06T00:00:00
23450 31 30 31 "SS - N/S Jefferson Avenue, 2nd SS W/O Lewis Avenue, 20\""" 36 2015-05-05T00:00:00 2015-05-08T00:00:00 39 31 2015-05-06T00:00:00
24350 32 32 34 "SS - W/S Brighton 11th Street, 2nd SS S/O Cass Place, 12\""" 40 2015-05-05T00:00:00 2015-05-08T00:00:00 36 34 2015-05-05T00:00:00
31750 36 31 33 "SS - IFO 427 N/S W 26th St, 2nd SS W/O 9th Ave, 12\""" 39 2015-05-05T00:00:00 2015-05-08T00:00:00 42 37 2015-05-05T00:00:00
31850 34 30 32 "SS - IFO 82 S/S Warren St, 2nd SS E/O Greenwich St, 12\""" 38 2015-05-05T00:00:00 2015-05-08T00:00:00 41 36 2015-05-05T00:00:00
32350 33 31 33 "SS - IFO 116 E/S Ave C, 2nd SS N/O E 7th St, 12\""" 40 2015-05-05T00:00:00 2015-05-08T00:00:00 39 36 2015-05-05T00:00:00
33450 36 32 34 "SS - IFO 135 N/S W 112th St, 2nd SS W/O St Nicholas Ave, 12\""" 40 2015-05-05T00:00:00 2015-05-08T00:00:00 44 37 2015-05-05T00:00:00
33950 34 32 34 "SS - N/S E 104th Street, 2nd SS E/O 3rd Avenue, 12\""" 41 2015-05-05T00:00:00 2015-05-08T00:00:00 43 36 2015-05-05T00:00:00
37950 27 30 32 "SS - IFO 325 N/S E 12th Street, 2nd SS E/O 2nd Ave, 12\""" 37 2015-05-05T00:00:00 2015-05-09T00:00:00 30 33 2015-05-05T00:00:00
38250 29 32 33 "SS - IFO 309 N/S E 87th St, 2nd SS W/O 1st Ave, 12\""" 37 2015-05-05T00:00:00 2015-05-13T00:00:00 32 34 2015-05-05T00:00:00
39650 27 31 31 "SS - IFO 229 N/S E 49th St, 2nd SS W/O 2nd Ave, 12\""" 36 2015-05-05T00:00:00 2015-05-09T00:00:00 27 32 2015-05-05T00:00:00
44350 28 29 30 "SS - IFO 21-55 N/S 34th Ave, 1st SS W/O 24th St, 12\""" 33 2015-05-05T00:00:00 2015-05-09T00:00:00 29 31 2015-05-05T00:00:00
45250 27 33 32 "SS - E/S Beach 58th St, 2nd SS N/O Beach Channel Drive, 12\""" 35 2015-05-05T00:00:00 2015-05-09T00:00:00 30 29 2015-05-05T00:00:00
50250 26 39 34 "SS - IFO 937 N/S Victory Blvd, 2nd SS E/O Highland Ave, 20\""" 36 2015-05-05T00:00:00 2015-05-09T00:00:00 28 30 2015-05-05T00:00:00
50750 35 37 34 "SS - E/S Woodhull Ave, 1st SS S/O Albourne Ave, 8\""" 33 2015-05-05T00:00:00 2015-05-09T00:00:00 39 38 2015-05-06T00:00:00
50850 30 40 37 "SS - IFO 512 W/S Arlene St, 1st SS N/O Dawson Ct, 12\""" 38 2015-05-05T00:00:00 2015-05-09T00:00:00 32 33 2015-05-06T00:00:00
52050 32 38 35 "SS - IFO 218 W/S Nicholas Ave, 1st SS S/O Charles Ave, 12\""" 38 2015-05-05T00:00:00 2015-05-09T00:00:00 33 35 2015-05-05T00:00:00
58650 34 39 36 "SS - IFO 510 W/S Main St, 2nd SS S/O Hylan Blvd, 12\""" 35 2015-05-05T00:00:00 2015-05-09T00:00:00 36 37 2015-05-06T00:00:00
77650 27 32 31 SS - OPP 110-52 E/S 207th St 34 2015-05-05T00:00:00 2015-05-09T00:00:00 28 30 2015-05-05T00:00:00
15150 40 28 29 "SS - IFO 1420 E/S Grand Concourse, 1st SS S/O E 171st St, 20\""" 30 2015-08-04T00:00:00 2015-08-08T00:00:00 58 33 2015-08-06T00:00:00
18650 30 27 27 "SS - N/S Dewey Ave, btw Quincy & Swinton Aves, 12\""" 27 2015-08-04T00:00:00 2015-08-08T00:00:00 40 26 2015-08-06T00:00:00
23450 41 29 30 "SS - N/S Jefferson Avenue, 2nd SS W/O Lewis Avenue, 20\""" 30 2015-08-04T00:00:00 2015-08-08T00:00:00 54 35 2015-08-06T00:00:00
24350 44 32 32 "SS - W/S Brighton 11th Street, 2nd SS S/O Cass Place, 12\""" 32 2015-08-04T00:00:00 2015-08-08T00:00:00 61 38 2015-08-07T00:00:00
31750 39 31 33 "SS - IFO 427 N/S W 26th St, 2nd SS W/O 9th Ave, 12\""" 32 2015-08-04T00:00:00 2015-08-08T00:00:00 46 37 2015-08-07T00:00:00
31850 44 29 30 "SS - IFO 82 S/S Warren St, 2nd SS E/O Greenwich St, 12\""" 28 2015-08-04T00:00:00 2015-08-08T00:00:00 60 39 2015-08-07T00:00:00
32350 42 30 30 "SS - IFO 116 E/S Ave C, 2nd SS N/O E 7th St, 12\""" 28 2015-08-04T00:00:00 2015-08-08T00:00:00 56 37 2015-08-07T00:00:00
33450 33 30 29 "SS - IFO 135 N/S W 112th St, 2nd SS W/O St Nicholas Ave, 12\""" 25 2015-08-04T00:00:00 2015-08-08T00:00:00 36 34 2015-08-07T00:00:00
33950 33 30 29 "SS - N/S E 104th Street, 2nd SS E/O 3rd Avenue, 12\""" 25 2015-08-04T00:00:00 2015-08-08T00:00:00 37 33 2015-08-07T00:00:00
37950 36 30 31 "SS - IFO 325 N/S E 12th Street, 2nd SS E/O 2nd Ave, 12\""" 31 2015-08-04T00:00:00 2015-08-10T00:00:00 48 32 2015-08-07T00:00:00
38250 41 32 33 "SS - IFO 309 N/S E 87th St, 2nd SS W/O 1st Ave, 12\""" 35 2015-08-19T00:00:00 2015-08-10T00:00:00 57 35 2015-08-21T00:00:00
39650 35 31 32 "SS - IFO 229 N/S E 49th St, 2nd SS W/O 2nd Ave, 12\""" 34 2015-08-04T00:00:00 2015-08-11T00:00:00 49 32 2015-08-07T00:00:00
44350 27 30 30 "SS - IFO 21-55 N/S 34th Ave, 1st SS W/O 24th St, 12\""" 32 2015-08-04T00:00:00 2015-08-11T00:00:00 31 28 2015-08-07T00:00:00
45250 38 30 30 "SS - E/S Beach 58th St, 2nd SS N/O Beach Channel Drive, 12\""" 28 2015-08-04T00:00:00 2015-08-11T00:00:00 53 32 2015-08-07T00:00:00
50250 33 36 37 "SS - IFO 937 N/S Victory Blvd, 2nd SS E/O Highland Ave, 20\""" 43 2015-08-19T00:00:00 2015-08-11T00:00:00 43 30 2015-08-21T00:00:00
50750 46 33 31 "SS - E/S Woodhull Ave, 1st SS S/O Albourne Ave, 8\""" 30 2015-08-04T00:00:00 2015-08-11T00:00:00 62 40 2015-08-07T00:00:00
50850 39 36 35 "SS - IFO 512 W/S Arlene St, 1st SS N/O Dawson Ct, 12\""" 35 2015-08-04T00:00:00 2015-08-11T00:00:00 53 35 2015-08-07T00:00:00
52050 41 34 33 "SS - IFO 218 W/S Nicholas Ave, 1st SS S/O Charles Ave, 12\""" 31 2015-08-04T00:00:00 2015-08-11T00:00:00 56 38 2015-08-07T00:00:00
58650 40 36 36 "SS - IFO 510 W/S Main St, 2nd SS S/O Hylan Blvd, 12\""" 38 2015-08-04T00:00:00 2015-08-10T00:00:00 50 37 2015-08-07T00:00:00
77650 32 30 30 SS - OPP 110-52 E/S 207th St 31 2015-08-04T00:00:00 2015-08-10T00:00:00 42 30 2015-08-07T00:00:00
15150 44 33 39 "SS - IFO 1420 E/S Grand Concourse, 1st SS S/O E 171st St, 20\""" 45 2015-11-04T00:00:00 2015-11-05T00:00:00 44 37 2015-11-06T00:00:00
18650 34 30 34 "SS - N/S Dewey Ave, btw Quincy & Swinton Aves, 12\""" 37 2015-11-04T00:00:00 2015-11-20T00:00:00 35 28 2015-11-06T00:00:00
23450 42 32 35 "SS - N/S Jefferson Avenue, 2nd SS W/O Lewis Avenue, 20\""" 37 2015-11-04T00:00:00 2015-11-05T00:00:00 38 37 2015-11-06T00:00:00
24350 44 33 36 "SS - W/S Brighton 11th Street, 2nd SS S/O Cass Place, 12\""" 35 2015-11-04T00:00:00 2015-11-07T00:00:00 39 38 2015-11-05T00:00:00
31750 46 31 30 "SS - IFO 427 N/S W 26th St, 2nd SS W/O 9th Ave, 12\""" 25 2015-11-04T00:00:00 2015-11-07T00:00:00 47 39 2015-11-05T00:00:00
31850 50 31 34 "SS - IFO 82 S/S Warren St, 2nd SS E/O Greenwich St, 12\""" 35 2015-11-04T00:00:00 2015-11-09T00:00:00 50 42 2015-11-06T00:00:00
32350 47 31 33 "SS - IFO 116 E/S Ave C, 2nd SS N/O E 7th St, 12\""" 31 2015-11-04T00:00:00 2015-11-07T00:00:00 47 40 2015-11-05T00:00:00
33450 39 29 30 "SS - IFO 135 N/S W 112th St, 2nd SS W/O St Nicholas Ave, 12\""" 27 2015-11-04T00:00:00 2015-11-11T00:00:00 37 34 2015-11-06T00:00:00
33950 39 29 31 "SS - N/S E 104th Street, 2nd SS E/O 3rd Avenue, 12\""" 28 2015-11-04T00:00:00 2015-11-11T00:00:00 37 33 2015-11-06T00:00:00
37950 44 30 31 "SS - IFO 325 N/S E 12th Street, 2nd SS E/O 2nd Ave, 12\""" 28 2015-11-04T00:00:00 2015-11-07T00:00:00 48 36 2015-11-06T00:00:00
38250 48 37 44 "SS - IFO 309 N/S E 87th St, 2nd SS W/O 1st Ave, 12\""" 51 2015-11-04T00:00:00 2015-11-11T00:00:00 51 39 2015-11-06T00:00:00
39650 44 34 39 "SS - IFO 229 N/S E 49th St, 2nd SS W/O 2nd Ave, 12\""" 42 2015-11-04T00:00:00 2015-11-11T00:00:00 49 35 2015-11-06T00:00:00
44350 33 31 34 "SS - IFO 21-55 N/S 34th Ave, 1st SS W/O 24th St, 12\""" 35 2015-11-04T00:00:00 2015-11-05T00:00:00 35 28 2015-11-05T00:00:00
45250 38 31 32 "SS - E/S Beach 58th St, 2nd SS N/O Beach Channel Drive, 12\""" 33 2015-11-04T00:00:00 2015-11-07T00:00:00 34 34 2015-11-05T00:00:00
50250 37 36 38 "SS - IFO 937 N/S Victory Blvd, 2nd SS E/O Highland Ave, 20\""" 36 2015-11-04T00:00:00 2015-11-07T00:00:00 38 31 2015-11-05T00:00:00
50750 49 29 27 "SS - E/S Woodhull Ave, 1st SS S/O Albourne Ave, 8\""" 22 2015-11-04T00:00:00 2015-11-07T00:00:00 47 42 2015-11-06T00:00:00
50850 42 34 35 "SS - IFO 512 W/S Arlene St, 1st SS N/O Dawson Ct, 12\""" 33 2015-11-04T00:00:00 2015-11-09T00:00:00 42 36 2015-11-05T00:00:00
52050 45 31 30 "SS - IFO 218 W/S Nicholas Ave, 1st SS S/O Charles Ave, 12\""" 25 2015-11-04T00:00:00 2015-11-07T00:00:00 45 38 2015-11-05T00:00:00
58650 45 34 34 "SS - IFO 510 W/S Main St, 2nd SS S/O Hylan Blvd, 12\""" 31 2015-11-04T00:00:00 2015-11-09T00:00:00 46 39 2015-11-05T00:00:00
77650 36 31 33 SS - OPP 110-52 E/S 207th St 33 2015-11-04T00:00:00 2015-11-07T00:00:00 37 31 2015-11-05T00:00:00
15150 43 36 36 "SS - IFO 1420 E/S Grand Concourse, 1st SS S/O E 171st St, 20\""" 35 2016-02-02T00:00:00 2016-02-04T00:00:00 34 42 2016-02-03T00:00:00
18650 30 31 29 "SS - N/S Dewey Ave, btw Quincy & Swinton Aves, 12\""" 25 2016-02-02T00:00:00 2016-02-05T00:00:00 23 31 2016-02-02T00:00:00
23450 37 33 31 "SS - N/S Jefferson Avenue, 2nd SS W/O Lewis Avenue, 20\""" 29 2016-02-02T00:00:00 2016-02-05T00:00:00 27 40 2016-02-02T00:00:00
24350 44 36 35 "SS - W/S Brighton 11th Street, 2nd SS S/O Cass Place, 12\""" 36 2016-02-02T00:00:00 2016-02-05T00:00:00 38 44 2016-02-02T00:00:00
31750 42 31 28 "SS - IFO 427 N/S W 26th St, 2nd SS W/O 9th Ave, 12\""" 27 2016-02-02T00:00:00 2016-02-06T00:00:00 38 43 2016-02-02T00:00:00
31850 47 33 30 "SS - IFO 82 S/S Warren St, 2nd SS E/O Greenwich St, 12\""" 29 2016-02-02T00:00:00 2016-02-06T00:00:00 38 47 2016-02-02T00:00:00
32350 44 34 32 "SS - IFO 116 E/S Ave C, 2nd SS N/O E 7th St, 12\""" 35 2016-02-02T00:00:00 2016-02-06T00:00:00 37 45 2016-02-03T00:00:00
33450 31 29 24 "SS - IFO 135 N/S W 112th St, 2nd SS W/O St Nicholas Ave, 12\""" 22 2016-02-02T00:00:00 2016-02-06T00:00:00 25 36 2016-02-03T00:00:00
33950 31 29 24 "SS - N/S E 104th Street, 2nd SS E/O 3rd Avenue, 12\""" 22 2016-02-02T00:00:00 2016-02-06T00:00:00 25 36 2016-02-03T00:00:00
37950 45 33 33 "SS - IFO 325 N/S E 12th Street, 2nd SS E/O 2nd Ave, 12\""" 36 2016-02-02T00:00:00 2016-02-06T00:00:00 41 42 2016-02-03T00:00:00
38250 47 41 42 "SS - IFO 309 N/S E 87th St, 2nd SS W/O 1st Ave, 12\""" 40 2016-02-02T00:00:00 2016-02-06T00:00:00 39 45 2016-02-03T00:00:00
39650 43 37 37 "SS - IFO 229 N/S E 49th St, 2nd SS W/O 2nd Ave, 12\""" 36 2016-02-02T00:00:00 2016-02-08T00:00:00 37 41 2016-02-03T00:00:00
44350 38 36 38 "SS - IFO 21-55 N/S 34th Ave, 1st SS W/O 24th St, 12\""" 42 2016-02-02T00:00:00 2016-02-08T00:00:00 42 34 2016-02-03T00:00:00
45250 35 32 31 "SS - E/S Beach 58th St, 2nd SS N/O Beach Channel Drive, 12\""" 31 2016-02-02T00:00:00 2016-02-09T00:00:00 26 36 2016-02-03T00:00:00
50250 33 37 36 "SS - IFO 937 N/S Victory Blvd, 2nd SS E/O Highland Ave, 20\""" 32 2016-02-02T00:00:00 2016-02-09T00:00:00 26 34 2016-02-03T00:00:00
50750 42 30 31 "SS - E/S Woodhull Ave, 1st SS S/O Albourne Ave, 8\""" 35 2016-02-02T00:00:00 2016-02-09T00:00:00 29 44 2016-02-03T00:00:00
50850 38 35 34 "SS - IFO 512 W/S Arlene St, 1st SS N/O Dawson Ct, 12\""" 33 2016-02-02T00:00:00 2016-02-09T00:00:00 28 39 2016-02-03T00:00:00
52050 40 32 31 "SS - IFO 218 W/S Nicholas Ave, 1st SS S/O Charles Ave, 12\""" 34 2016-02-02T00:00:00 2016-02-09T00:00:00 30 41 2016-02-03T00:00:00
58650 41 35 35 "SS - IFO 510 W/S Main St, 2nd SS S/O Hylan Blvd, 12\""" 35 2016-02-02T00:00:00 2016-02-09T00:00:00 34 42 2016-02-03T00:00:00
77650 32 32 31 SS - OPP 110-52 E/S 207th St 29 2016-02-02T00:00:00 2016-02-09T00:00:00 24 33 2016-02-03T00:00:00
1 site oel_tthm_g_l_a lraa_haa5_g_l_b oel_haa5_g_l_b location result_haa5_g_l_b sample_date analysis_date_haa5_g_l_b result_tthm_g_l_a lraa_tthm_g_l_a analysis_date_tthm_g_l_a
2 15150 35 31 31 SS - IFO 1420 E/S Grand Concourse, 1st SS S/O E 171st St, 20\" 26 2014-11-05T00:00:00 2014-11-11T00:00:00 27 33 2014-11-05T00:00:00
3 18650 28 31 31 SS - N/S Dewey Ave, btw Quincy & Swinton Aves, 12\" 27 2014-11-05T00:00:00 2014-11-11T00:00:00 25 26 2014-11-05T00:00:00
4 23450 33 33 33 SS - N/S Jefferson Avenue, 2nd SS W/O Lewis Avenue, 20\" 28 2014-11-05T00:00:00 2014-11-11T00:00:00 30 31 2014-11-05T00:00:00
5 24350 40 34 34 SS - W/S Brighton 11th Street, 2nd SS S/O Cass Place, 12\" 30 2014-11-05T00:00:00 2014-11-11T00:00:00 37 37 2014-11-05T00:00:00
6 31750 44 34 33 SS - IFO 427 N/S W 26th St, 2nd SS W/O 9th Ave, 12\" 27 2014-11-05T00:00:00 2014-11-11T00:00:00 39 41 2014-11-05T00:00:00
7 31850 42 34 32 SS - IFO 82 S/S Warren St, 2nd SS E/O Greenwich St, 12\" 26 2014-11-05T00:00:00 2014-11-11T00:00:00 39 38 2014-11-06T00:00:00
8 32350 42 32 31 SS - IFO 116 E/S Ave C, 2nd SS N/O E 7th St, 12\" 26 2014-11-05T00:00:00 2014-11-11T00:00:00 36 39 2014-11-06T00:00:00
9 33450 42 37 37 SS - IFO 135 N/S W 112th St, 2nd SS W/O St Nicholas Ave, 12\" 30 2014-11-05T00:00:00 2014-11-12T00:00:00 38 37 2014-11-06T00:00:00
10 33950 39 36 36 SS - N/S E 104th Street, 2nd SS E/O 3rd Avenue, 12\" 30 2014-11-05T00:00:00 2014-11-13T00:00:00 34 36 2014-11-06T00:00:00
11 37950 38 35 34 SS - IFO 325 N/S E 12th Street, 2nd SS E/O 2nd Ave, 12\" 28 2014-11-05T00:00:00 2014-11-13T00:00:00 32 36 2014-11-06T00:00:00
12 38250 40 41 40 SS - IFO 309 N/S E 87th St, 2nd SS W/O 1st Ave, 12\" 33 2014-11-05T00:00:00 2014-11-13T00:00:00 34 38 2014-11-06T00:00:00
13 39650 41 37 37 SS - IFO 229 N/S E 49th St, 2nd SS W/O 2nd Ave, 12\" 29 2014-11-05T00:00:00 2014-11-13T00:00:00 36 38 2014-11-06T00:00:00
14 44350 39 35 34 SS - IFO 21-55 N/S 34th Ave, 1st SS W/O 24th St, 12\" 29 2014-11-05T00:00:00 2014-11-13T00:00:00 37 36 2014-11-06T00:00:00
15 45250 34 35 35 SS - E/S Beach 58th St, 2nd SS N/O Beach Channel Drive, 12\" 31 2014-11-05T00:00:00 2014-11-13T00:00:00 29 32 2014-11-06T00:00:00
16 50250 37 45 45 SS - IFO 937 N/S Victory Blvd, 2nd SS E/O Highland Ave, 20\" 37 2014-11-05T00:00:00 2014-11-13T00:00:00 33 35 2014-11-06T00:00:00
17 50750 44 40 40 SS - E/S Woodhull Ave, 1st SS S/O Albourne Ave, 8\" 40 2014-11-05T00:00:00 2014-11-13T00:00:00 39 42 2014-11-06T00:00:00
18 50850 40 45 45 SS - IFO 512 W/S Arlene St, 1st SS N/O Dawson Ct, 12\" 41 2014-11-05T00:00:00 2014-11-13T00:00:00 37 38 2014-11-06T00:00:00
19 52050 44 42 40 SS - IFO 218 W/S Nicholas Ave, 1st SS S/O Charles Ave, 12\" 35 2014-11-05T00:00:00 2014-11-13T00:00:00 43 39 2014-11-06T00:00:00
20 58650 43 45 45 SS - IFO 510 W/S Main St, 2nd SS S/O Hylan Blvd, 12\" 40 2014-11-05T00:00:00 2014-11-14T00:00:00 40 41 2014-11-06T00:00:00
21 77650 35 35 35 SS - OPP 110-52 E/S 207th St 32 2014-11-05T00:00:00 2014-11-14T00:00:00 35 32 2014-11-06T00:00:00
22 15150 26 30 25 SS - IFO 1420 E/S Grand Concourse, 1st SS S/O E 171st St, 20\" 22 2015-02-04T00:00:00 2015-02-06T00:00:00 15 32 2015-02-05T00:00:00
23 18650 21 29 25 SS - N/S Dewey Ave, btw Quincy & Swinton Aves, 12\" 20 2015-02-04T00:00:00 2015-02-06T00:00:00 13 25 2015-02-09T00:00:00
24 23450 25 32 27 SS - N/S Jefferson Avenue, 2nd SS W/O Lewis Avenue, 20\" 23 2015-02-04T00:00:00 2015-02-06T00:00:00 15 30 2015-02-05T00:00:00
25 24350 29 33 29 SS - W/S Brighton 11th Street, 2nd SS S/O Cass Place, 12\" 25 2015-02-04T00:00:00 2015-02-05T00:00:00 17 35 2015-02-05T00:00:00
26 31750 32 33 28 SS - IFO 427 N/S W 26th St, 2nd SS W/O 9th Ave, 12\" 27 2015-02-04T00:00:00 2015-02-05T00:00:00 20 39 2015-02-05T00:00:00
27 31850 29 32 27 SS - IFO 82 S/S Warren St, 2nd SS E/O Greenwich St, 12\" 24 2015-02-04T00:00:00 2015-02-05T00:00:00 16 36 2015-02-05T00:00:00
28 32350 31 30 27 SS - IFO 116 E/S Ave C, 2nd SS N/O E 7th St, 12\" 25 2015-02-04T00:00:00 2015-02-06T00:00:00 17 37 2015-02-05T00:00:00
29 33450 30 35 28 SS - IFO 135 N/S W 112th St, 2nd SS W/O St Nicholas Ave, 12\" 24 2015-02-04T00:00:00 2015-02-06T00:00:00 17 36 2015-02-05T00:00:00
30 33950 29 34 28 SS - N/S E 104th Street, 2nd SS E/O 3rd Avenue, 12\" 23 2015-02-04T00:00:00 2015-02-06T00:00:00 16 35 2015-02-05T00:00:00
31 37950 29 33 27 SS - IFO 325 N/S E 12th Street, 2nd SS E/O 2nd Ave, 12\" 24 2015-02-04T00:00:00 2015-02-06T00:00:00 17 34 2015-02-05T00:00:00
32 38250 30 38 29 SS - IFO 309 N/S E 87th St, 2nd SS W/O 1st Ave, 12\" 23 2015-02-04T00:00:00 2015-02-06T00:00:00 16 36 2015-02-05T00:00:00
33 39650 30 35 28 SS - IFO 229 N/S E 49th St, 2nd SS W/O 2nd Ave, 12\" 24 2015-02-04T00:00:00 2015-02-06T00:00:00 16 36 2015-02-05T00:00:00
34 44350 28 33 27 SS - IFO 21-55 N/S 34th Ave, 1st SS W/O 24th St, 12\" 24 2015-02-04T00:00:00 2015-02-06T00:00:00 15 34 2015-02-09T00:00:00
35 45250 26 34 31 SS - E/S Beach 58th St, 2nd SS N/O Beach Channel Drive, 12\" 27 2015-02-04T00:00:00 2015-02-06T00:00:00 17 31 2015-02-05T00:00:00
36 50250 27 42 37 SS - IFO 937 N/S Victory Blvd, 2nd SS E/O Highland Ave, 20\" 27 2015-02-04T00:00:00 2015-02-07T00:00:00 16 33 2015-02-05T00:00:00
37 50750 33 37 36 SS - E/S Woodhull Ave, 1st SS S/O Albourne Ave, 8\" 30 2015-02-04T00:00:00 2015-02-06T00:00:00 21 39 2015-02-05T00:00:00
38 50850 29 42 38 SS - IFO 512 W/S Arlene St, 1st SS N/O Dawson Ct, 12\" 30 2015-02-04T00:00:00 2015-02-07T00:00:00 18 35 2015-02-05T00:00:00
39 52050 32 39 36 SS - IFO 218 W/S Nicholas Ave, 1st SS S/O Charles Ave, 12\" 30 2015-02-04T00:00:00 2015-02-07T00:00:00 19 38 2015-02-05T00:00:00
40 58650 34 43 39 SS - IFO 510 W/S Main St, 2nd SS S/O Hylan Blvd, 12\" 32 2015-02-04T00:00:00 2015-02-07T00:00:00 23 39 2015-02-05T00:00:00
41 77650 26 33 29 SS - OPP 110-52 E/S 207th St 24 2015-02-04T00:00:00 2015-02-07T00:00:00 15 30 2015-02-05T00:00:00
42 15150 26 28 29 SS - IFO 1420 E/S Grand Concourse, 1st SS S/O E 171st St, 20\" 34 2015-05-05T00:00:00 2015-05-07T00:00:00 30 30 2015-05-06T00:00:00
43 18650 22 29 29 SS - N/S Dewey Ave, btw Quincy & Swinton Aves, 12\" 34 2015-05-05T00:00:00 2015-05-07T00:00:00 25 24 2015-05-06T00:00:00
44 23450 31 30 31 SS - N/S Jefferson Avenue, 2nd SS W/O Lewis Avenue, 20\" 36 2015-05-05T00:00:00 2015-05-08T00:00:00 39 31 2015-05-06T00:00:00
45 24350 32 32 34 SS - W/S Brighton 11th Street, 2nd SS S/O Cass Place, 12\" 40 2015-05-05T00:00:00 2015-05-08T00:00:00 36 34 2015-05-05T00:00:00
46 31750 36 31 33 SS - IFO 427 N/S W 26th St, 2nd SS W/O 9th Ave, 12\" 39 2015-05-05T00:00:00 2015-05-08T00:00:00 42 37 2015-05-05T00:00:00
47 31850 34 30 32 SS - IFO 82 S/S Warren St, 2nd SS E/O Greenwich St, 12\" 38 2015-05-05T00:00:00 2015-05-08T00:00:00 41 36 2015-05-05T00:00:00
48 32350 33 31 33 SS - IFO 116 E/S Ave C, 2nd SS N/O E 7th St, 12\" 40 2015-05-05T00:00:00 2015-05-08T00:00:00 39 36 2015-05-05T00:00:00
49 33450 36 32 34 SS - IFO 135 N/S W 112th St, 2nd SS W/O St Nicholas Ave, 12\" 40 2015-05-05T00:00:00 2015-05-08T00:00:00 44 37 2015-05-05T00:00:00
50 33950 34 32 34 SS - N/S E 104th Street, 2nd SS E/O 3rd Avenue, 12\" 41 2015-05-05T00:00:00 2015-05-08T00:00:00 43 36 2015-05-05T00:00:00
51 37950 27 30 32 SS - IFO 325 N/S E 12th Street, 2nd SS E/O 2nd Ave, 12\" 37 2015-05-05T00:00:00 2015-05-09T00:00:00 30 33 2015-05-05T00:00:00
52 38250 29 32 33 SS - IFO 309 N/S E 87th St, 2nd SS W/O 1st Ave, 12\" 37 2015-05-05T00:00:00 2015-05-13T00:00:00 32 34 2015-05-05T00:00:00
53 39650 27 31 31 SS - IFO 229 N/S E 49th St, 2nd SS W/O 2nd Ave, 12\" 36 2015-05-05T00:00:00 2015-05-09T00:00:00 27 32 2015-05-05T00:00:00
54 44350 28 29 30 SS - IFO 21-55 N/S 34th Ave, 1st SS W/O 24th St, 12\" 33 2015-05-05T00:00:00 2015-05-09T00:00:00 29 31 2015-05-05T00:00:00
55 45250 27 33 32 SS - E/S Beach 58th St, 2nd SS N/O Beach Channel Drive, 12\" 35 2015-05-05T00:00:00 2015-05-09T00:00:00 30 29 2015-05-05T00:00:00
56 50250 26 39 34 SS - IFO 937 N/S Victory Blvd, 2nd SS E/O Highland Ave, 20\" 36 2015-05-05T00:00:00 2015-05-09T00:00:00 28 30 2015-05-05T00:00:00
57 50750 35 37 34 SS - E/S Woodhull Ave, 1st SS S/O Albourne Ave, 8\" 33 2015-05-05T00:00:00 2015-05-09T00:00:00 39 38 2015-05-06T00:00:00
58 50850 30 40 37 SS - IFO 512 W/S Arlene St, 1st SS N/O Dawson Ct, 12\" 38 2015-05-05T00:00:00 2015-05-09T00:00:00 32 33 2015-05-06T00:00:00
59 52050 32 38 35 SS - IFO 218 W/S Nicholas Ave, 1st SS S/O Charles Ave, 12\" 38 2015-05-05T00:00:00 2015-05-09T00:00:00 33 35 2015-05-05T00:00:00
60 58650 34 39 36 SS - IFO 510 W/S Main St, 2nd SS S/O Hylan Blvd, 12\" 35 2015-05-05T00:00:00 2015-05-09T00:00:00 36 37 2015-05-06T00:00:00
61 77650 27 32 31 SS - OPP 110-52 E/S 207th St 34 2015-05-05T00:00:00 2015-05-09T00:00:00 28 30 2015-05-05T00:00:00
62 15150 26 28 29 SS - IFO 1420 E/S Grand Concourse, 1st SS S/O E 171st St, 20\" 34 2015-05-05T00:00:00 2015-05-07T00:00:00 30 30 2015-05-06T00:00:00
63 18650 22 29 29 SS - N/S Dewey Ave, btw Quincy & Swinton Aves, 12\" 34 2015-05-05T00:00:00 2015-05-07T00:00:00 25 24 2015-05-06T00:00:00
64 23450 31 30 31 SS - N/S Jefferson Avenue, 2nd SS W/O Lewis Avenue, 20\" 36 2015-05-05T00:00:00 2015-05-08T00:00:00 39 31 2015-05-06T00:00:00
65 24350 32 32 34 SS - W/S Brighton 11th Street, 2nd SS S/O Cass Place, 12\" 40 2015-05-05T00:00:00 2015-05-08T00:00:00 36 34 2015-05-05T00:00:00
66 31750 36 31 33 SS - IFO 427 N/S W 26th St, 2nd SS W/O 9th Ave, 12\" 39 2015-05-05T00:00:00 2015-05-08T00:00:00 42 37 2015-05-05T00:00:00
67 31850 34 30 32 SS - IFO 82 S/S Warren St, 2nd SS E/O Greenwich St, 12\" 38 2015-05-05T00:00:00 2015-05-08T00:00:00 41 36 2015-05-05T00:00:00
68 32350 33 31 33 SS - IFO 116 E/S Ave C, 2nd SS N/O E 7th St, 12\" 40 2015-05-05T00:00:00 2015-05-08T00:00:00 39 36 2015-05-05T00:00:00
69 33450 36 32 34 SS - IFO 135 N/S W 112th St, 2nd SS W/O St Nicholas Ave, 12\" 40 2015-05-05T00:00:00 2015-05-08T00:00:00 44 37 2015-05-05T00:00:00
70 33950 34 32 34 SS - N/S E 104th Street, 2nd SS E/O 3rd Avenue, 12\" 41 2015-05-05T00:00:00 2015-05-08T00:00:00 43 36 2015-05-05T00:00:00
71 37950 27 30 32 SS - IFO 325 N/S E 12th Street, 2nd SS E/O 2nd Ave, 12\" 37 2015-05-05T00:00:00 2015-05-09T00:00:00 30 33 2015-05-05T00:00:00
72 38250 29 32 33 SS - IFO 309 N/S E 87th St, 2nd SS W/O 1st Ave, 12\" 37 2015-05-05T00:00:00 2015-05-13T00:00:00 32 34 2015-05-05T00:00:00
73 39650 27 31 31 SS - IFO 229 N/S E 49th St, 2nd SS W/O 2nd Ave, 12\" 36 2015-05-05T00:00:00 2015-05-09T00:00:00 27 32 2015-05-05T00:00:00
74 44350 28 29 30 SS - IFO 21-55 N/S 34th Ave, 1st SS W/O 24th St, 12\" 33 2015-05-05T00:00:00 2015-05-09T00:00:00 29 31 2015-05-05T00:00:00
75 45250 27 33 32 SS - E/S Beach 58th St, 2nd SS N/O Beach Channel Drive, 12\" 35 2015-05-05T00:00:00 2015-05-09T00:00:00 30 29 2015-05-05T00:00:00
76 50250 26 39 34 SS - IFO 937 N/S Victory Blvd, 2nd SS E/O Highland Ave, 20\" 36 2015-05-05T00:00:00 2015-05-09T00:00:00 28 30 2015-05-05T00:00:00
77 50750 35 37 34 SS - E/S Woodhull Ave, 1st SS S/O Albourne Ave, 8\" 33 2015-05-05T00:00:00 2015-05-09T00:00:00 39 38 2015-05-06T00:00:00
78 50850 30 40 37 SS - IFO 512 W/S Arlene St, 1st SS N/O Dawson Ct, 12\" 38 2015-05-05T00:00:00 2015-05-09T00:00:00 32 33 2015-05-06T00:00:00
79 52050 32 38 35 SS - IFO 218 W/S Nicholas Ave, 1st SS S/O Charles Ave, 12\" 38 2015-05-05T00:00:00 2015-05-09T00:00:00 33 35 2015-05-05T00:00:00
80 58650 34 39 36 SS - IFO 510 W/S Main St, 2nd SS S/O Hylan Blvd, 12\" 35 2015-05-05T00:00:00 2015-05-09T00:00:00 36 37 2015-05-06T00:00:00
81 77650 27 32 31 SS - OPP 110-52 E/S 207th St 34 2015-05-05T00:00:00 2015-05-09T00:00:00 28 30 2015-05-05T00:00:00
82 15150 40 28 29 SS - IFO 1420 E/S Grand Concourse, 1st SS S/O E 171st St, 20\" 30 2015-08-04T00:00:00 2015-08-08T00:00:00 58 33 2015-08-06T00:00:00
83 18650 30 27 27 SS - N/S Dewey Ave, btw Quincy & Swinton Aves, 12\" 27 2015-08-04T00:00:00 2015-08-08T00:00:00 40 26 2015-08-06T00:00:00
84 23450 41 29 30 SS - N/S Jefferson Avenue, 2nd SS W/O Lewis Avenue, 20\" 30 2015-08-04T00:00:00 2015-08-08T00:00:00 54 35 2015-08-06T00:00:00
85 24350 44 32 32 SS - W/S Brighton 11th Street, 2nd SS S/O Cass Place, 12\" 32 2015-08-04T00:00:00 2015-08-08T00:00:00 61 38 2015-08-07T00:00:00
86 31750 39 31 33 SS - IFO 427 N/S W 26th St, 2nd SS W/O 9th Ave, 12\" 32 2015-08-04T00:00:00 2015-08-08T00:00:00 46 37 2015-08-07T00:00:00
87 31850 44 29 30 SS - IFO 82 S/S Warren St, 2nd SS E/O Greenwich St, 12\" 28 2015-08-04T00:00:00 2015-08-08T00:00:00 60 39 2015-08-07T00:00:00
88 32350 42 30 30 SS - IFO 116 E/S Ave C, 2nd SS N/O E 7th St, 12\" 28 2015-08-04T00:00:00 2015-08-08T00:00:00 56 37 2015-08-07T00:00:00
89 33450 33 30 29 SS - IFO 135 N/S W 112th St, 2nd SS W/O St Nicholas Ave, 12\" 25 2015-08-04T00:00:00 2015-08-08T00:00:00 36 34 2015-08-07T00:00:00
90 33950 33 30 29 SS - N/S E 104th Street, 2nd SS E/O 3rd Avenue, 12\" 25 2015-08-04T00:00:00 2015-08-08T00:00:00 37 33 2015-08-07T00:00:00
91 37950 36 30 31 SS - IFO 325 N/S E 12th Street, 2nd SS E/O 2nd Ave, 12\" 31 2015-08-04T00:00:00 2015-08-10T00:00:00 48 32 2015-08-07T00:00:00
92 38250 41 32 33 SS - IFO 309 N/S E 87th St, 2nd SS W/O 1st Ave, 12\" 35 2015-08-19T00:00:00 2015-08-10T00:00:00 57 35 2015-08-21T00:00:00
93 39650 35 31 32 SS - IFO 229 N/S E 49th St, 2nd SS W/O 2nd Ave, 12\" 34 2015-08-04T00:00:00 2015-08-11T00:00:00 49 32 2015-08-07T00:00:00
94 44350 27 30 30 SS - IFO 21-55 N/S 34th Ave, 1st SS W/O 24th St, 12\" 32 2015-08-04T00:00:00 2015-08-11T00:00:00 31 28 2015-08-07T00:00:00
95 45250 38 30 30 SS - E/S Beach 58th St, 2nd SS N/O Beach Channel Drive, 12\" 28 2015-08-04T00:00:00 2015-08-11T00:00:00 53 32 2015-08-07T00:00:00
96 50250 33 36 37 SS - IFO 937 N/S Victory Blvd, 2nd SS E/O Highland Ave, 20\" 43 2015-08-19T00:00:00 2015-08-11T00:00:00 43 30 2015-08-21T00:00:00
97 50750 46 33 31 SS - E/S Woodhull Ave, 1st SS S/O Albourne Ave, 8\" 30 2015-08-04T00:00:00 2015-08-11T00:00:00 62 40 2015-08-07T00:00:00
98 50850 39 36 35 SS - IFO 512 W/S Arlene St, 1st SS N/O Dawson Ct, 12\" 35 2015-08-04T00:00:00 2015-08-11T00:00:00 53 35 2015-08-07T00:00:00
99 52050 41 34 33 SS - IFO 218 W/S Nicholas Ave, 1st SS S/O Charles Ave, 12\" 31 2015-08-04T00:00:00 2015-08-11T00:00:00 56 38 2015-08-07T00:00:00
100 58650 40 36 36 SS - IFO 510 W/S Main St, 2nd SS S/O Hylan Blvd, 12\" 38 2015-08-04T00:00:00 2015-08-10T00:00:00 50 37 2015-08-07T00:00:00
101 77650 32 30 30 SS - OPP 110-52 E/S 207th St 31 2015-08-04T00:00:00 2015-08-10T00:00:00 42 30 2015-08-07T00:00:00
102 15150 44 33 39 SS - IFO 1420 E/S Grand Concourse, 1st SS S/O E 171st St, 20\" 45 2015-11-04T00:00:00 2015-11-05T00:00:00 44 37 2015-11-06T00:00:00
103 18650 34 30 34 SS - N/S Dewey Ave, btw Quincy & Swinton Aves, 12\" 37 2015-11-04T00:00:00 2015-11-20T00:00:00 35 28 2015-11-06T00:00:00
104 23450 42 32 35 SS - N/S Jefferson Avenue, 2nd SS W/O Lewis Avenue, 20\" 37 2015-11-04T00:00:00 2015-11-05T00:00:00 38 37 2015-11-06T00:00:00
105 24350 44 33 36 SS - W/S Brighton 11th Street, 2nd SS S/O Cass Place, 12\" 35 2015-11-04T00:00:00 2015-11-07T00:00:00 39 38 2015-11-05T00:00:00
106 31750 46 31 30 SS - IFO 427 N/S W 26th St, 2nd SS W/O 9th Ave, 12\" 25 2015-11-04T00:00:00 2015-11-07T00:00:00 47 39 2015-11-05T00:00:00
107 31850 50 31 34 SS - IFO 82 S/S Warren St, 2nd SS E/O Greenwich St, 12\" 35 2015-11-04T00:00:00 2015-11-09T00:00:00 50 42 2015-11-06T00:00:00
108 32350 47 31 33 SS - IFO 116 E/S Ave C, 2nd SS N/O E 7th St, 12\" 31 2015-11-04T00:00:00 2015-11-07T00:00:00 47 40 2015-11-05T00:00:00
109 33450 39 29 30 SS - IFO 135 N/S W 112th St, 2nd SS W/O St Nicholas Ave, 12\" 27 2015-11-04T00:00:00 2015-11-11T00:00:00 37 34 2015-11-06T00:00:00
110 33950 39 29 31 SS - N/S E 104th Street, 2nd SS E/O 3rd Avenue, 12\" 28 2015-11-04T00:00:00 2015-11-11T00:00:00 37 33 2015-11-06T00:00:00
111 37950 44 30 31 SS - IFO 325 N/S E 12th Street, 2nd SS E/O 2nd Ave, 12\" 28 2015-11-04T00:00:00 2015-11-07T00:00:00 48 36 2015-11-06T00:00:00
112 38250 48 37 44 SS - IFO 309 N/S E 87th St, 2nd SS W/O 1st Ave, 12\" 51 2015-11-04T00:00:00 2015-11-11T00:00:00 51 39 2015-11-06T00:00:00
113 39650 44 34 39 SS - IFO 229 N/S E 49th St, 2nd SS W/O 2nd Ave, 12\" 42 2015-11-04T00:00:00 2015-11-11T00:00:00 49 35 2015-11-06T00:00:00
114 44350 33 31 34 SS - IFO 21-55 N/S 34th Ave, 1st SS W/O 24th St, 12\" 35 2015-11-04T00:00:00 2015-11-05T00:00:00 35 28 2015-11-05T00:00:00
115 45250 38 31 32 SS - E/S Beach 58th St, 2nd SS N/O Beach Channel Drive, 12\" 33 2015-11-04T00:00:00 2015-11-07T00:00:00 34 34 2015-11-05T00:00:00
116 50250 37 36 38 SS - IFO 937 N/S Victory Blvd, 2nd SS E/O Highland Ave, 20\" 36 2015-11-04T00:00:00 2015-11-07T00:00:00 38 31 2015-11-05T00:00:00
117 50750 49 29 27 SS - E/S Woodhull Ave, 1st SS S/O Albourne Ave, 8\" 22 2015-11-04T00:00:00 2015-11-07T00:00:00 47 42 2015-11-06T00:00:00
118 50850 42 34 35 SS - IFO 512 W/S Arlene St, 1st SS N/O Dawson Ct, 12\" 33 2015-11-04T00:00:00 2015-11-09T00:00:00 42 36 2015-11-05T00:00:00
119 52050 45 31 30 SS - IFO 218 W/S Nicholas Ave, 1st SS S/O Charles Ave, 12\" 25 2015-11-04T00:00:00 2015-11-07T00:00:00 45 38 2015-11-05T00:00:00
120 58650 45 34 34 SS - IFO 510 W/S Main St, 2nd SS S/O Hylan Blvd, 12\" 31 2015-11-04T00:00:00 2015-11-09T00:00:00 46 39 2015-11-05T00:00:00
121 77650 36 31 33 SS - OPP 110-52 E/S 207th St 33 2015-11-04T00:00:00 2015-11-07T00:00:00 37 31 2015-11-05T00:00:00
122 15150 43 36 36 SS - IFO 1420 E/S Grand Concourse, 1st SS S/O E 171st St, 20\" 35 2016-02-02T00:00:00 2016-02-04T00:00:00 34 42 2016-02-03T00:00:00
123 18650 30 31 29 SS - N/S Dewey Ave, btw Quincy & Swinton Aves, 12\" 25 2016-02-02T00:00:00 2016-02-05T00:00:00 23 31 2016-02-02T00:00:00
124 23450 37 33 31 SS - N/S Jefferson Avenue, 2nd SS W/O Lewis Avenue, 20\" 29 2016-02-02T00:00:00 2016-02-05T00:00:00 27 40 2016-02-02T00:00:00
125 24350 44 36 35 SS - W/S Brighton 11th Street, 2nd SS S/O Cass Place, 12\" 36 2016-02-02T00:00:00 2016-02-05T00:00:00 38 44 2016-02-02T00:00:00
126 31750 42 31 28 SS - IFO 427 N/S W 26th St, 2nd SS W/O 9th Ave, 12\" 27 2016-02-02T00:00:00 2016-02-06T00:00:00 38 43 2016-02-02T00:00:00
127 31850 47 33 30 SS - IFO 82 S/S Warren St, 2nd SS E/O Greenwich St, 12\" 29 2016-02-02T00:00:00 2016-02-06T00:00:00 38 47 2016-02-02T00:00:00
128 32350 44 34 32 SS - IFO 116 E/S Ave C, 2nd SS N/O E 7th St, 12\" 35 2016-02-02T00:00:00 2016-02-06T00:00:00 37 45 2016-02-03T00:00:00
129 33450 31 29 24 SS - IFO 135 N/S W 112th St, 2nd SS W/O St Nicholas Ave, 12\" 22 2016-02-02T00:00:00 2016-02-06T00:00:00 25 36 2016-02-03T00:00:00
130 33950 31 29 24 SS - N/S E 104th Street, 2nd SS E/O 3rd Avenue, 12\" 22 2016-02-02T00:00:00 2016-02-06T00:00:00 25 36 2016-02-03T00:00:00
131 37950 45 33 33 SS - IFO 325 N/S E 12th Street, 2nd SS E/O 2nd Ave, 12\" 36 2016-02-02T00:00:00 2016-02-06T00:00:00 41 42 2016-02-03T00:00:00
132 38250 47 41 42 SS - IFO 309 N/S E 87th St, 2nd SS W/O 1st Ave, 12\" 40 2016-02-02T00:00:00 2016-02-06T00:00:00 39 45 2016-02-03T00:00:00
133 39650 43 37 37 SS - IFO 229 N/S E 49th St, 2nd SS W/O 2nd Ave, 12\" 36 2016-02-02T00:00:00 2016-02-08T00:00:00 37 41 2016-02-03T00:00:00
134 44350 38 36 38 SS - IFO 21-55 N/S 34th Ave, 1st SS W/O 24th St, 12\" 42 2016-02-02T00:00:00 2016-02-08T00:00:00 42 34 2016-02-03T00:00:00
135 45250 35 32 31 SS - E/S Beach 58th St, 2nd SS N/O Beach Channel Drive, 12\" 31 2016-02-02T00:00:00 2016-02-09T00:00:00 26 36 2016-02-03T00:00:00
136 50250 33 37 36 SS - IFO 937 N/S Victory Blvd, 2nd SS E/O Highland Ave, 20\" 32 2016-02-02T00:00:00 2016-02-09T00:00:00 26 34 2016-02-03T00:00:00
137 50750 42 30 31 SS - E/S Woodhull Ave, 1st SS S/O Albourne Ave, 8\" 35 2016-02-02T00:00:00 2016-02-09T00:00:00 29 44 2016-02-03T00:00:00
138 50850 38 35 34 SS - IFO 512 W/S Arlene St, 1st SS N/O Dawson Ct, 12\" 33 2016-02-02T00:00:00 2016-02-09T00:00:00 28 39 2016-02-03T00:00:00
139 52050 40 32 31 SS - IFO 218 W/S Nicholas Ave, 1st SS S/O Charles Ave, 12\" 34 2016-02-02T00:00:00 2016-02-09T00:00:00 30 41 2016-02-03T00:00:00
140 58650 41 35 35 SS - IFO 510 W/S Main St, 2nd SS S/O Hylan Blvd, 12\" 35 2016-02-02T00:00:00 2016-02-09T00:00:00 34 42 2016-02-03T00:00:00
141 77650 32 32 31 SS - OPP 110-52 E/S 207th St 29 2016-02-02T00:00:00 2016-02-09T00:00:00 24 33 2016-02-03T00:00:00

View File

@ -0,0 +1,109 @@
nursing_home_medical_assistance supplemental_security_income_medical_assistance total_hra_enrolled_medical_assistance_individuals cash_assistance_medical_assistance medical_assistance_only month
40943 407863 2553064 369672 1775529 2007-01-01T00:00:00
40536 407459 2533062 363960 1761643 2007-02-01T00:00:00
40276 408022 2560715 363130 1789563 2007-03-01T00:00:00
40087 407465 2538852 358717 1772670 2007-04-01T00:00:00
39707 408011 2550214 355795 1786408 2007-05-01T00:00:00
39923 408190 2559977 356232 1795555 2007-06-01T00:00:00
39954 407474 2565687 351704 1806509 2007-07-01T00:00:00
40046 407284 2582296 353144 1821868 2007-08-01T00:00:00
39998 408391 2587153 353802 1824960 2007-09-01T00:00:00
39594 407217 2585112 350510 1827385 2007-10-01T00:00:00
39536 407530 2580800 351207 1822063 2007-11-01T00:00:00
39257 408121 2565826 344417 1813288 2007-12-01T00:00:00
39403 407373 2552898 346039 1799486 2008-01-01T00:00:00
39637 406891 2555532 342505 1806136 2008-02-01T00:00:00
39227 406539 2554528 338658 1809331 2008-03-01T00:00:00
39272 406227 2559031 340723 1812081 2008-04-01T00:00:00
39310 407504 2568678 341176 1819998 2008-05-01T00:00:00
39143 407295 2563819 336156 1820368 2008-06-01T00:00:00
39822 408185 2568573 336583 1823805 2008-07-01T00:00:00
40150 409355 2585641 336222 1840064 2008-08-01T00:00:00
39860 408697 2596233 335130 1852406 2008-09-01T00:00:00
40315 409965 2617704 336732 1871007 2008-10-01T00:00:00
40487 411142 2621285 339994 1870149 2008-11-01T00:00:00
40186 411980 2622283 337367 1872936 2008-12-01T00:00:00
40091 414199 2643446 341497 1887750 2009-01-01T00:00:00
39983 413931 2650549 340399 1896219 2009-02-01T00:00:00
39909 413044 2660618 339858 1907716 2009-03-01T00:00:00
39749 413202 2666706 341717 1911787 2009-04-01T00:00:00
39412 414561 2695904 343306 1938037 2009-05-01T00:00:00
39695 412735 2704947 343032 1949180 2009-06-01T00:00:00
39490 413466 2742566 347907 1981193 2009-07-01T00:00:00
39109 413778 2752419 347565 1991076 2009-08-01T00:00:00
39241 413764 2769517 349939 2005814 2009-09-01T00:00:00
39412 414673 2809642 357463 2037506 2009-10-01T00:00:00
39462 413729 2815150 354893 2046528 2009-11-01T00:00:00
38989 413072 2818225 354544 2050609 2009-12-01T00:00:00
39005 414535 2838890 357560 2066795 2010-01-01T00:00:00
39409 414446 2839012 353317 2071249 2010-02-01T00:00:00
38830 413349 2831495 344533 2073613 2010-03-01T00:00:00
38673 414289 2854426 346439 2093698 2010-04-01T00:00:00
38719 415831 2849760 345897 2088032 2010-05-01T00:00:00
38244 414905 2843564 340279 2088380 2010-06-01T00:00:00
38113 416655 2863980 346927 2100398 2010-07-01T00:00:00
38316 416046 2863648 344105 2103497 2010-08-01T00:00:00
38149 415275 2865675 349295 2101105 2010-09-01T00:00:00
38692 416741 2892894 356841 2119312 2010-10-01T00:00:00
38410 416051 2891556 352797 2122708 2010-11-01T00:00:00
38459 417183 2908316 355463 2135670 2010-12-01T00:00:00
38232 416029 2903849 357333 2130487 2011-01-01T00:00:00
37450 416191 2895290 351730 2127369 2011-02-01T00:00:00
37297 416104 2900747 352377 2132266 2011-03-01T00:00:00
37268 417217 2915727 354942 2143568 2011-04-01T00:00:00
37078 415530 2912186 348344 2148312 2011-05-01T00:00:00
36911 416213 2912686 345605 2150868 2011-06-01T00:00:00
37037 417775 2927952 347733 2162444 2011-07-01T00:00:00
37031 416845 2926095 342379 2166871 2011-08-01T00:00:00
37666 416358 2944308 348084 2179866 2011-09-01T00:00:00
37715 415846 2949136 347031 2186259 2011-10-01T00:00:00
37597 416318 2938146 345377 2176451 2011-11-01T00:00:00
37381 418238 2954261 349238 2186785 2011-12-01T00:00:00
37161 416434 2953689 347998 2189257 2012-01-01T00:00:00
37511 416344 2946523 341817 2188362 2012-02-01T00:00:00
37883 417512 2977419 346504 2213403 2012-03-01T00:00:00
37621 416164 2984224 343076 2224984 2012-04-01T00:00:00
38077 415859 2983102 344148 2223095 2012-05-01T00:00:00
38221 416996 3006473 347927 2241550 2012-06-01T00:00:00
38347 415562 3013979 343522 2254895 2012-07-01T00:00:00
38746 415535 3035500 347353 2272612 2012-08-01T00:00:00
38723 415966 3053914 350853 2287095 2012-09-01T00:00:00
38171 414518 3055632 349182 2291932 2012-10-01T00:00:00
38237 416660 3062343 360731 2284952 2012-11-01T00:00:00
38475 420076 3084635 351360 2313199 2012-12-01T00:00:00
37784 416221 3120366 356375 2347770 2013-01-01T00:00:00
37451 416563 3088847 356356 2315928 2013-02-01T00:00:00
37578 417246 3066719 358065 2291408 2013-03-01T00:00:00
36936 415933 3066198 352658 2297607 2013-04-01T00:00:00
37073 416311 3082873 355030 2311532 2013-05-01T00:00:00
37113 417769 3085625 349962 2317894 2013-06-01T00:00:00
37005 416797 3087019 342655 2327567 2013-07-01T00:00:00
37161 418400 3103136 346722 2338014 2013-08-01T00:00:00
37126 417103 3096940 339214 2340623 2013-09-01T00:00:00
37286 418011 3102667 343425 2341231 2013-10-01T00:00:00
37280 418774 3100839 345715 2336350 2013-11-01T00:00:00
37049 417621 3052952 333474 2301857 2013-12-01T00:00:00
36883 417358 3038658 333763 2287537 2014-01-01T00:00:00
36524 417536 3001399 332364 2251499 2014-02-01T00:00:00
36454 417219 2953616 325673 2210724 2014-03-01T00:00:00
36357 417737 2902390 324654 2159999 2014-04-01T00:00:00
36052 419694 2862189 328590 2113905 2014-05-01T00:00:00
36205 418048 2808003 325488 2064467 2014-06-01T00:00:00
36291 417270 2765879 332040 2016569 2014-07-01T00:00:00
36283 418519 2722903 337654 1966730 2014-08-01T00:00:00
36126 416437 2673184 335577 1921170 2014-09-01T00:00:00
36111 416411 2626679 342415 1867853 2014-10-01T00:00:00
36236 416701 2576092 346945 1812446 2014-11-01T00:00:00
35964 415548 2551697 343196 1792953 2014-12-01T00:00:00
36045 415972 2504263 348342 1739949 2015-01-01T00:00:00
35645 414458 2476326 348703 1713165 2015-02-01T00:00:00
35593 411939 2445422 345639 1687844 2015-03-01T00:00:00
35429 411309 2411909 347119 1653481 2015-04-01T00:00:00
35392 412587 2397321 351622 1633112 2015-05-01T00:00:00
35179 410745 2371763 352900 1608118 2015-06-01T00:00:00
35210 410278 2345506 354269 1580959 2015-07-01T00:00:00
35054 410415 2316965 356918 1549632 2015-08-01T00:00:00
34833 409802 2289501 359646 1520053 2015-09-01T00:00:00
35146 411428 2270809 363041 1496340 2015-10-01T00:00:00
35165 409858 2239152 360041 1469253 2015-11-01T00:00:00
34686 409192 2207727 356394 1442141 2015-12-01T00:00:00
1 nursing_home_medical_assistance supplemental_security_income_medical_assistance total_hra_enrolled_medical_assistance_individuals cash_assistance_medical_assistance medical_assistance_only month
2 40943 407863 2553064 369672 1775529 2007-01-01T00:00:00
3 40536 407459 2533062 363960 1761643 2007-02-01T00:00:00
4 40276 408022 2560715 363130 1789563 2007-03-01T00:00:00
5 40087 407465 2538852 358717 1772670 2007-04-01T00:00:00
6 39707 408011 2550214 355795 1786408 2007-05-01T00:00:00
7 39923 408190 2559977 356232 1795555 2007-06-01T00:00:00
8 39954 407474 2565687 351704 1806509 2007-07-01T00:00:00
9 40046 407284 2582296 353144 1821868 2007-08-01T00:00:00
10 39998 408391 2587153 353802 1824960 2007-09-01T00:00:00
11 39594 407217 2585112 350510 1827385 2007-10-01T00:00:00
12 39536 407530 2580800 351207 1822063 2007-11-01T00:00:00
13 39257 408121 2565826 344417 1813288 2007-12-01T00:00:00
14 39403 407373 2552898 346039 1799486 2008-01-01T00:00:00
15 39637 406891 2555532 342505 1806136 2008-02-01T00:00:00
16 39227 406539 2554528 338658 1809331 2008-03-01T00:00:00
17 39272 406227 2559031 340723 1812081 2008-04-01T00:00:00
18 39310 407504 2568678 341176 1819998 2008-05-01T00:00:00
19 39143 407295 2563819 336156 1820368 2008-06-01T00:00:00
20 39822 408185 2568573 336583 1823805 2008-07-01T00:00:00
21 40150 409355 2585641 336222 1840064 2008-08-01T00:00:00
22 39860 408697 2596233 335130 1852406 2008-09-01T00:00:00
23 40315 409965 2617704 336732 1871007 2008-10-01T00:00:00
24 40487 411142 2621285 339994 1870149 2008-11-01T00:00:00
25 40186 411980 2622283 337367 1872936 2008-12-01T00:00:00
26 40091 414199 2643446 341497 1887750 2009-01-01T00:00:00
27 39983 413931 2650549 340399 1896219 2009-02-01T00:00:00
28 39909 413044 2660618 339858 1907716 2009-03-01T00:00:00
29 39749 413202 2666706 341717 1911787 2009-04-01T00:00:00
30 39412 414561 2695904 343306 1938037 2009-05-01T00:00:00
31 39695 412735 2704947 343032 1949180 2009-06-01T00:00:00
32 39490 413466 2742566 347907 1981193 2009-07-01T00:00:00
33 39109 413778 2752419 347565 1991076 2009-08-01T00:00:00
34 39241 413764 2769517 349939 2005814 2009-09-01T00:00:00
35 39412 414673 2809642 357463 2037506 2009-10-01T00:00:00
36 39462 413729 2815150 354893 2046528 2009-11-01T00:00:00
37 38989 413072 2818225 354544 2050609 2009-12-01T00:00:00
38 39005 414535 2838890 357560 2066795 2010-01-01T00:00:00
39 39409 414446 2839012 353317 2071249 2010-02-01T00:00:00
40 38830 413349 2831495 344533 2073613 2010-03-01T00:00:00
41 38673 414289 2854426 346439 2093698 2010-04-01T00:00:00
42 38719 415831 2849760 345897 2088032 2010-05-01T00:00:00
43 38244 414905 2843564 340279 2088380 2010-06-01T00:00:00
44 38113 416655 2863980 346927 2100398 2010-07-01T00:00:00
45 38316 416046 2863648 344105 2103497 2010-08-01T00:00:00
46 38149 415275 2865675 349295 2101105 2010-09-01T00:00:00
47 38692 416741 2892894 356841 2119312 2010-10-01T00:00:00
48 38410 416051 2891556 352797 2122708 2010-11-01T00:00:00
49 38459 417183 2908316 355463 2135670 2010-12-01T00:00:00
50 38232 416029 2903849 357333 2130487 2011-01-01T00:00:00
51 37450 416191 2895290 351730 2127369 2011-02-01T00:00:00
52 37297 416104 2900747 352377 2132266 2011-03-01T00:00:00
53 37268 417217 2915727 354942 2143568 2011-04-01T00:00:00
54 37078 415530 2912186 348344 2148312 2011-05-01T00:00:00
55 36911 416213 2912686 345605 2150868 2011-06-01T00:00:00
56 37037 417775 2927952 347733 2162444 2011-07-01T00:00:00
57 37031 416845 2926095 342379 2166871 2011-08-01T00:00:00
58 37666 416358 2944308 348084 2179866 2011-09-01T00:00:00
59 37715 415846 2949136 347031 2186259 2011-10-01T00:00:00
60 37597 416318 2938146 345377 2176451 2011-11-01T00:00:00
61 37381 418238 2954261 349238 2186785 2011-12-01T00:00:00
62 37161 416434 2953689 347998 2189257 2012-01-01T00:00:00
63 37511 416344 2946523 341817 2188362 2012-02-01T00:00:00
64 37883 417512 2977419 346504 2213403 2012-03-01T00:00:00
65 37621 416164 2984224 343076 2224984 2012-04-01T00:00:00
66 38077 415859 2983102 344148 2223095 2012-05-01T00:00:00
67 38221 416996 3006473 347927 2241550 2012-06-01T00:00:00
68 38347 415562 3013979 343522 2254895 2012-07-01T00:00:00
69 38746 415535 3035500 347353 2272612 2012-08-01T00:00:00
70 38723 415966 3053914 350853 2287095 2012-09-01T00:00:00
71 38171 414518 3055632 349182 2291932 2012-10-01T00:00:00
72 38237 416660 3062343 360731 2284952 2012-11-01T00:00:00
73 38475 420076 3084635 351360 2313199 2012-12-01T00:00:00
74 37784 416221 3120366 356375 2347770 2013-01-01T00:00:00
75 37451 416563 3088847 356356 2315928 2013-02-01T00:00:00
76 37578 417246 3066719 358065 2291408 2013-03-01T00:00:00
77 36936 415933 3066198 352658 2297607 2013-04-01T00:00:00
78 37073 416311 3082873 355030 2311532 2013-05-01T00:00:00
79 37113 417769 3085625 349962 2317894 2013-06-01T00:00:00
80 37005 416797 3087019 342655 2327567 2013-07-01T00:00:00
81 37161 418400 3103136 346722 2338014 2013-08-01T00:00:00
82 37126 417103 3096940 339214 2340623 2013-09-01T00:00:00
83 37286 418011 3102667 343425 2341231 2013-10-01T00:00:00
84 37280 418774 3100839 345715 2336350 2013-11-01T00:00:00
85 37049 417621 3052952 333474 2301857 2013-12-01T00:00:00
86 36883 417358 3038658 333763 2287537 2014-01-01T00:00:00
87 36524 417536 3001399 332364 2251499 2014-02-01T00:00:00
88 36454 417219 2953616 325673 2210724 2014-03-01T00:00:00
89 36357 417737 2902390 324654 2159999 2014-04-01T00:00:00
90 36052 419694 2862189 328590 2113905 2014-05-01T00:00:00
91 36205 418048 2808003 325488 2064467 2014-06-01T00:00:00
92 36291 417270 2765879 332040 2016569 2014-07-01T00:00:00
93 36283 418519 2722903 337654 1966730 2014-08-01T00:00:00
94 36126 416437 2673184 335577 1921170 2014-09-01T00:00:00
95 36111 416411 2626679 342415 1867853 2014-10-01T00:00:00
96 36236 416701 2576092 346945 1812446 2014-11-01T00:00:00
97 35964 415548 2551697 343196 1792953 2014-12-01T00:00:00
98 36045 415972 2504263 348342 1739949 2015-01-01T00:00:00
99 35645 414458 2476326 348703 1713165 2015-02-01T00:00:00
100 35593 411939 2445422 345639 1687844 2015-03-01T00:00:00
101 35429 411309 2411909 347119 1653481 2015-04-01T00:00:00
102 35392 412587 2397321 351622 1633112 2015-05-01T00:00:00
103 35179 410745 2371763 352900 1608118 2015-06-01T00:00:00
104 35210 410278 2345506 354269 1580959 2015-07-01T00:00:00
105 35054 410415 2316965 356918 1549632 2015-08-01T00:00:00
106 34833 409802 2289501 359646 1520053 2015-09-01T00:00:00
107 35146 411428 2270809 363041 1496340 2015-10-01T00:00:00
108 35165 409858 2239152 360041 1469253 2015-11-01T00:00:00
109 34686 409192 2207727 356394 1442141 2015-12-01T00:00:00

View File

@ -0,0 +1,40 @@
school_name dbn pct_of_cohort_achieving_apm pct_of_graduates_achieving_apm total_grads_num cohort_year total_cohort_num demographic num_achieving_apm
HENRY STREET SCHOOL FOR INTERNATIONAL STUDIES 01M292 s s 8 2006 9 Asian s
HENRY STREET SCHOOL FOR INTERNATIONAL STUDIES 01M292 s s 6 2007 7 Asian s
HENRY STREET SCHOOL FOR INTERNATIONAL STUDIES 01M292 s s 16 2006 24 Black s
HENRY STREET SCHOOL FOR INTERNATIONAL STUDIES 01M292 s s 10 2007 18 Black s
HENRY STREET SCHOOL FOR INTERNATIONAL STUDIES 01M292 s s 17 2006 42 Hispanic s
HENRY STREET SCHOOL FOR INTERNATIONAL STUDIES 01M292 4.00% 8.30% 24 2007 50 Hispanic 2
HENRY STREET SCHOOL FOR INTERNATIONAL STUDIES 01M292 s s 1 2006 2 White s
HENRY STREET SCHOOL FOR INTERNATIONAL STUDIES 01M292 s s 1 2007 2 White s
UNIVERSITY NEIGHBORHOOD HIGH SCHOOL 01M448 s s 15 2006 21 Asian s
UNIVERSITY NEIGHBORHOOD HIGH SCHOOL 01M448 42.90% 51.70% 29 2007 35 Asian 15
UNIVERSITY NEIGHBORHOOD HIGH SCHOOL 01M448 s s 6 2006 26 Black s
UNIVERSITY NEIGHBORHOOD HIGH SCHOOL 01M448 s s 20 2007 32 Black s
UNIVERSITY NEIGHBORHOOD HIGH SCHOOL 01M448 7.80% 20.80% 24 2006 64 Hispanic 5
UNIVERSITY NEIGHBORHOOD HIGH SCHOOL 01M448 4.10% 7.00% 43 2007 73 Hispanic 3
UNIVERSITY NEIGHBORHOOD HIGH SCHOOL 01M448 s s 4 2006 6 White s
UNIVERSITY NEIGHBORHOOD HIGH SCHOOL 01M448 s s 7 2007 10 White s
MARTA VALLE SECONDARY SCHOOL 01M509 s s 14 2006 17 Asian s
MARTA VALLE SECONDARY SCHOOL 01M509 s s 6 2007 6 Asian s
MARTA VALLE SECONDARY SCHOOL 01M509 s s 6 2006 11 Black s
MARTA VALLE SECONDARY SCHOOL 01M509 s s 4 2007 15 Black s
MARTA VALLE SECONDARY SCHOOL 01M509 7.40% 16.00% 25 2006 54 Hispanic 4
MARTA VALLE SECONDARY SCHOOL 01M509 4.10% 8.30% 36 2007 73 Hispanic 3
MARTA VALLE SECONDARY SCHOOL 01M509 s s 2 2006 2 White s
MARTA VALLE SECONDARY SCHOOL 01M509 s s 1 2007 1 White s
LOWER EAST SIDE PREPARATORY HIGH SCHOOL 01M515 35.00% 61.80% 102 2006 180 Asian 63
LOWER EAST SIDE PREPARATORY HIGH SCHOOL 01M515 36.10% 65.70% 67 2007 122 Asian 44
LOWER EAST SIDE PREPARATORY HIGH SCHOOL 01M515 s s 3 2006 7 Black s
LOWER EAST SIDE PREPARATORY HIGH SCHOOL 01M515 s s 1 2007 38 Black s
LOWER EAST SIDE PREPARATORY HIGH SCHOOL 01M515 s s 0 2006 6 Hispanic s
LOWER EAST SIDE PREPARATORY HIGH SCHOOL 01M515 s s 5 2007 64 Hispanic s
LOWER EAST SIDE PREPARATORY HIGH SCHOOL 01M515 s s 1 2007 5 White s
BRONX THEATRE HIGH SCHOOL 10X546 s s 0 2006 1 Asian s
BRONX THEATRE HIGH SCHOOL 10X546 s s 0 2007 1 Asian s
BRONX THEATRE HIGH SCHOOL 10X546 8.80% 13.60% 22 2006 34 Black 3
BRONX THEATRE HIGH SCHOOL 10X546 s s 20 2007 34 Black s
BRONX THEATRE HIGH SCHOOL 10X546 7.10% 15.60% 32 2006 70 Hispanic 5
BRONX THEATRE HIGH SCHOOL 10X546 3.00% 6.10% 33 2007 66 Hispanic 2
BRONX THEATRE HIGH SCHOOL 10X546 s s 2 2006 3 White s
BRONX THEATRE HIGH SCHOOL 10X546 s s 3 2007 4 White s
1 school_name dbn pct_of_cohort_achieving_apm pct_of_graduates_achieving_apm total_grads_num cohort_year total_cohort_num demographic num_achieving_apm
2 HENRY STREET SCHOOL FOR INTERNATIONAL STUDIES 01M292 s s 8 2006 9 Asian s
3 HENRY STREET SCHOOL FOR INTERNATIONAL STUDIES 01M292 s s 6 2007 7 Asian s
4 HENRY STREET SCHOOL FOR INTERNATIONAL STUDIES 01M292 s s 16 2006 24 Black s
5 HENRY STREET SCHOOL FOR INTERNATIONAL STUDIES 01M292 s s 10 2007 18 Black s
6 HENRY STREET SCHOOL FOR INTERNATIONAL STUDIES 01M292 s s 17 2006 42 Hispanic s
7 HENRY STREET SCHOOL FOR INTERNATIONAL STUDIES 01M292 4.00% 8.30% 24 2007 50 Hispanic 2
8 HENRY STREET SCHOOL FOR INTERNATIONAL STUDIES 01M292 s s 1 2006 2 White s
9 HENRY STREET SCHOOL FOR INTERNATIONAL STUDIES 01M292 s s 1 2007 2 White s
10 UNIVERSITY NEIGHBORHOOD HIGH SCHOOL 01M448 s s 15 2006 21 Asian s
11 UNIVERSITY NEIGHBORHOOD HIGH SCHOOL 01M448 42.90% 51.70% 29 2007 35 Asian 15
12 UNIVERSITY NEIGHBORHOOD HIGH SCHOOL 01M448 s s 6 2006 26 Black s
13 UNIVERSITY NEIGHBORHOOD HIGH SCHOOL 01M448 s s 20 2007 32 Black s
14 UNIVERSITY NEIGHBORHOOD HIGH SCHOOL 01M448 7.80% 20.80% 24 2006 64 Hispanic 5
15 UNIVERSITY NEIGHBORHOOD HIGH SCHOOL 01M448 4.10% 7.00% 43 2007 73 Hispanic 3
16 UNIVERSITY NEIGHBORHOOD HIGH SCHOOL 01M448 s s 4 2006 6 White s
17 UNIVERSITY NEIGHBORHOOD HIGH SCHOOL 01M448 s s 7 2007 10 White s
18 MARTA VALLE SECONDARY SCHOOL 01M509 s s 14 2006 17 Asian s
19 MARTA VALLE SECONDARY SCHOOL 01M509 s s 6 2007 6 Asian s
20 MARTA VALLE SECONDARY SCHOOL 01M509 s s 6 2006 11 Black s
21 MARTA VALLE SECONDARY SCHOOL 01M509 s s 4 2007 15 Black s
22 MARTA VALLE SECONDARY SCHOOL 01M509 7.40% 16.00% 25 2006 54 Hispanic 4
23 MARTA VALLE SECONDARY SCHOOL 01M509 4.10% 8.30% 36 2007 73 Hispanic 3
24 MARTA VALLE SECONDARY SCHOOL 01M509 s s 2 2006 2 White s
25 MARTA VALLE SECONDARY SCHOOL 01M509 s s 1 2007 1 White s
26 LOWER EAST SIDE PREPARATORY HIGH SCHOOL 01M515 35.00% 61.80% 102 2006 180 Asian 63
27 LOWER EAST SIDE PREPARATORY HIGH SCHOOL 01M515 36.10% 65.70% 67 2007 122 Asian 44
28 LOWER EAST SIDE PREPARATORY HIGH SCHOOL 01M515 s s 3 2006 7 Black s
29 LOWER EAST SIDE PREPARATORY HIGH SCHOOL 01M515 s s 1 2007 38 Black s
30 LOWER EAST SIDE PREPARATORY HIGH SCHOOL 01M515 s s 0 2006 6 Hispanic s
31 LOWER EAST SIDE PREPARATORY HIGH SCHOOL 01M515 s s 5 2007 64 Hispanic s
32 LOWER EAST SIDE PREPARATORY HIGH SCHOOL 01M515 s s 1 2007 5 White s
33 BRONX THEATRE HIGH SCHOOL 10X546 s s 0 2006 1 Asian s
34 BRONX THEATRE HIGH SCHOOL 10X546 s s 0 2007 1 Asian s
35 BRONX THEATRE HIGH SCHOOL 10X546 8.80% 13.60% 22 2006 34 Black 3
36 BRONX THEATRE HIGH SCHOOL 10X546 s s 20 2007 34 Black s
37 BRONX THEATRE HIGH SCHOOL 10X546 7.10% 15.60% 32 2006 70 Hispanic 5
38 BRONX THEATRE HIGH SCHOOL 10X546 3.00% 6.10% 33 2007 66 Hispanic 2
39 BRONX THEATRE HIGH SCHOOL 10X546 s s 2 2006 3 White s
40 BRONX THEATRE HIGH SCHOOL 10X546 s s 3 2007 4 White s

View File

@ -0,0 +1,40 @@
business_name needs_recoding longitude latitude address city state zip tel website
"Rocio's Bakery " false -78.74864600041258 42.43318899977248 501 Grand Street Brooklyn NY 718-384-0773
New Apolo Restaurant false -78.74864600041258 42.43318899977248 502 Grand Street Brooklyn NY 718-387-1773
Flash Haircuts Unisex false -78.74864600041258 42.43318899977248 503 Grand Street Brooklyn NY 718-782-4246
Open Grill 24/7 Deli false -78.74864600041258 42.43318899977248 505 Grand Street Brooklyn NY 718-599-0937
Williams & Bailey false -78.74864600041258 42.43318899977248 507 Grand Street Brooklyn NY 718-782-3500 http://www.willliamsandbaileyny.com
"Redd's Tavern " false -78.74864600041258 42.43318899977248 511 Grand Street Brooklyn NY 718-218-9429
Singa's Famous Pizza false -78.74864600041258 42.43318899977248 512 Grand Street Brooklyn NY 718-782-2100 http://www.singaspizzas.com
Curry Heaven, Inc. false -78.74864600041258 42.43318899977248 513 Grand Street Brooklyn NY 718-388-3021
Lee's Furniture false -78.74864600041258 42.43318899977248 517 Grand Street Brooklyn NY 718-388-2743
Grand Animal Clinic false -78.74864600041258 42.43318899977248 518 Grand Street Brooklyn NY 718-388-4746
Sun Win Hardware Electrical and Pluming false -78.74864600041258 42.43318899977248 521 Grand Street Brooklyn NY 718-302-8861
Sun Nail & Hair false -78.74864600041258 42.43318899977248 522 Grand Street Brooklyn NY 718-599-9251
Mega Furniture Warehouse false -78.74864600041258 42.43318899977248 524 Grand Street Brooklyn NY 718-218-8050
United Pharmacy false -78.74864600041258 42.43318899977248 527 Grand Street Brooklyn NY 718-384-7901
Le Barricou false -78.74864600041258 42.43318899977248 533 Grand Street Brooklyn NY 718-782-7372 http://lebarricou.com
Franczoz Baking Corp false -78.74864600041258 42.43318899977248 528 40 Grand Street Brooklyn NY 718-387-4741
Great Wall Products (iron works supply) false -78.74864600041258 42.43318899977248 541 Grand Street Brooklyn NY 718-782-0288
Tai Shan Laundromat false -78.74864600041258 42.43318899977248 543 Grand Street Brooklyn NY 718-599-3888
Iglesia Mision Pentecostal false -78.74864600041258 42.43318899977248 544 Grand Street Brooklyn NY
Kingdom Toys & Gift false -78.74864600041258 42.43318899977248 547 Grand Street Brooklyn NY 718-599-0014
Payomatic Financial Servcies false -78.74864600041258 42.43318899977248 553 Grand Street Brooklyn NY 718-387-3377
Live Astro false -78.74864600041258 42.43318899977248 552 Grand Street Brooklyn NY 347-574-8600
Fresthentic false -78.74864600041258 42.43318899977248 552 Grand Street Brooklyn NY 347-394-2909 http://www.fresthetic.com
Truval Cleaners false -78.74864600041258 42.43318899977248 555 Grand Street Brooklyn NY 718-486-7639
Seven Star Beauty Salon false -78.74864600041258 42.43318899977248 556 Grand Street Brooklyn NY 718-218-8484
Ontario false -78.74864600041258 42.43318899977248 559 Grand Street Brooklyn NY 718-302-9675
Rebelution Designs (custom printing) false -78.74864600041258 42.43318899977248 560 Grand Street Brooklyn NY 917-971-3433 http://www.rebelutiondesigns.com
Grand Street Food Deli false -78.74864600041258 42.43318899977248 561 Grand Street Brooklyn NY 718-599-5940
Desi's Clam Bar false -78.74864600041258 42.43318899977248 562 Grand Street Brooklyn NY 347-599-0267
"America Medical Clinic " false -78.74864600041258 42.43318899977248 563 Grand Street Brooklyn NY 718-302-1170, 718-302-1109
Kin Shoe Repair false -78.74864600041258 42.43318899977248 566 Grand Street Brooklyn NY 718-782-0074
Taj Cabob and Curry false -78.74864600041258 42.43318899977248 568 Grand Street Brooklyn NY 718-782-1722
Manna false -78.74864600041258 42.43318899977248 572 Grand Street Brooklyn NY 718-384-2122
Key Food false -78.74864600041258 42.43318899977248 575 Grand Street Brooklyn NY 718-388-2776
Sing Hing Chinese Restaurant false -78.74864600041258 42.43318899977248 576 Grand Street Brooklyn NY 718-388-0446
Paradise Laundromat false -78.74864600041258 42.43318899977248 578 Grand Street Brooklyn NY 718-388-2888
Bahn Mi false -78.74864600041258 42.43318899977248 580 Grand Street Brooklyn NY 718-599-5015
Fabric Barn Inc. false -78.74864600041258 42.43318899977248 582 Grand Street Brooklyn NY 718-384-3448
Elba Dominican Beauty Salon false -78.74864600041258 42.43318899977248 584 Grand Street Brooklyn NY 718-388-5897
1 business_name needs_recoding longitude latitude address city state zip tel website
2 Rocio's Bakery false -78.74864600041258 42.43318899977248 501 Grand Street Brooklyn NY 718-384-0773
3 New Apolo Restaurant false -78.74864600041258 42.43318899977248 502 Grand Street Brooklyn NY 718-387-1773
4 Flash Haircuts Unisex false -78.74864600041258 42.43318899977248 503 Grand Street Brooklyn NY 718-782-4246
5 Open Grill 24/7 Deli false -78.74864600041258 42.43318899977248 505 Grand Street Brooklyn NY 718-599-0937
6 Williams & Bailey false -78.74864600041258 42.43318899977248 507 Grand Street Brooklyn NY 718-782-3500 http://www.willliamsandbaileyny.com
7 Redd's Tavern false -78.74864600041258 42.43318899977248 511 Grand Street Brooklyn NY 718-218-9429
8 Singa's Famous Pizza false -78.74864600041258 42.43318899977248 512 Grand Street Brooklyn NY 718-782-2100 http://www.singaspizzas.com
9 Curry Heaven, Inc. false -78.74864600041258 42.43318899977248 513 Grand Street Brooklyn NY 718-388-3021
10 Lee's Furniture false -78.74864600041258 42.43318899977248 517 Grand Street Brooklyn NY 718-388-2743
11 Grand Animal Clinic false -78.74864600041258 42.43318899977248 518 Grand Street Brooklyn NY 718-388-4746
12 Sun Win Hardware Electrical and Pluming false -78.74864600041258 42.43318899977248 521 Grand Street Brooklyn NY 718-302-8861
13 Sun Nail & Hair false -78.74864600041258 42.43318899977248 522 Grand Street Brooklyn NY 718-599-9251
14 Mega Furniture Warehouse false -78.74864600041258 42.43318899977248 524 Grand Street Brooklyn NY 718-218-8050
15 United Pharmacy false -78.74864600041258 42.43318899977248 527 Grand Street Brooklyn NY 718-384-7901
16 Le Barricou false -78.74864600041258 42.43318899977248 533 Grand Street Brooklyn NY 718-782-7372 http://lebarricou.com
17 Franczoz Baking Corp false -78.74864600041258 42.43318899977248 528 40 Grand Street Brooklyn NY 718-387-4741
18 Great Wall Products (iron works supply) false -78.74864600041258 42.43318899977248 541 Grand Street Brooklyn NY 718-782-0288
19 Tai Shan Laundromat false -78.74864600041258 42.43318899977248 543 Grand Street Brooklyn NY 718-599-3888
20 Iglesia Mision Pentecostal false -78.74864600041258 42.43318899977248 544 Grand Street Brooklyn NY
21 Kingdom Toys & Gift false -78.74864600041258 42.43318899977248 547 Grand Street Brooklyn NY 718-599-0014
22 Payomatic Financial Servcies false -78.74864600041258 42.43318899977248 553 Grand Street Brooklyn NY 718-387-3377
23 Live Astro false -78.74864600041258 42.43318899977248 552 Grand Street Brooklyn NY 347-574-8600
24 Fresthentic false -78.74864600041258 42.43318899977248 552 Grand Street Brooklyn NY 347-394-2909 http://www.fresthetic.com
25 Truval Cleaners false -78.74864600041258 42.43318899977248 555 Grand Street Brooklyn NY 718-486-7639
26 Seven Star Beauty Salon false -78.74864600041258 42.43318899977248 556 Grand Street Brooklyn NY 718-218-8484
27 Ontario false -78.74864600041258 42.43318899977248 559 Grand Street Brooklyn NY 718-302-9675
28 Rebelution Designs (custom printing) false -78.74864600041258 42.43318899977248 560 Grand Street Brooklyn NY 917-971-3433 http://www.rebelutiondesigns.com
29 Grand Street Food Deli false -78.74864600041258 42.43318899977248 561 Grand Street Brooklyn NY 718-599-5940
30 Desi's Clam Bar false -78.74864600041258 42.43318899977248 562 Grand Street Brooklyn NY 347-599-0267
31 America Medical Clinic false -78.74864600041258 42.43318899977248 563 Grand Street Brooklyn NY 718-302-1170, 718-302-1109
32 Kin Shoe Repair false -78.74864600041258 42.43318899977248 566 Grand Street Brooklyn NY 718-782-0074
33 Taj Cabob and Curry false -78.74864600041258 42.43318899977248 568 Grand Street Brooklyn NY 718-782-1722
34 Manna false -78.74864600041258 42.43318899977248 572 Grand Street Brooklyn NY 718-384-2122
35 Key Food false -78.74864600041258 42.43318899977248 575 Grand Street Brooklyn NY 718-388-2776
36 Sing Hing Chinese Restaurant false -78.74864600041258 42.43318899977248 576 Grand Street Brooklyn NY 718-388-0446
37 Paradise Laundromat false -78.74864600041258 42.43318899977248 578 Grand Street Brooklyn NY 718-388-2888
38 Bahn Mi false -78.74864600041258 42.43318899977248 580 Grand Street Brooklyn NY 718-599-5015
39 Fabric Barn Inc. false -78.74864600041258 42.43318899977248 582 Grand Street Brooklyn NY 718-384-3448
40 Elba Dominican Beauty Salon false -78.74864600041258 42.43318899977248 584 Grand Street Brooklyn NY 718-388-5897

View File

@ -0,0 +1,439 @@
buildingid consttype boro geo_dist name projdesc award location_1/needs_recoding location_1/longitude location_1/latitude location_1/human_address/address location_1/human_address/city location_1/human_address/state location_1/human_address/zip
M092 CIP M 5 ACADEMY OF COLLABORATIVE ED EXTERIOR MASONRY/REPAIR WINDOWS 4678000 false -73.94493618207292 40.8149219739981 222 134 STREET New York NY 10030
K610 CIP K 14 AUTOMOTIVE TRADES VOC HS FIRE ALARM 402500 false -73.95311779468979 40.72215011764413 50 BEDFORD AVENUE Brooklyn NY 11222
K554 CAP K 78 All City Leadership School Lease 29299000 false -73.91312770264774 40.69743439114146 321 Palmetto St Brooklyn NY 11237
X095 CAP X 10 Ampark Neighborhood School Addition 48624000 false -73.89107454904517 40.883162755141505 3961 Hillman Ave Bronx NY 10463
M488 CAP M 78 Art and Design HS New 0 false -73.96809182217982 40.758630224005685 231 249 E 56th St New York NY 10022
Q410 CIP Q 27 BEACH CHANNEL HS SWB-HAZARDOUS MASONRY/PARAPET/ROOF/EXTERIOR DOORS 23480000 false -73.85077700055808 40.57657830564432 100 00 BEACH CHANNEL DRIVE QUEENS NY 11694
M971 CIP M 2 BEEKMAN SCHOOL (PROJ#1)PS@M971 BEEKMAN INTERIOR FIT-OUT WORK 24288902.98 false -74.00596371272646 40.71174136432668 12 SPRUCE ST NEW YORK NY 10038
Q169 CIP Q 25 BELL ACADEMY@ Q169 SCIENCE LAB UPGRADE 342000 false -73.78226733686807 40.78070133439911 18 25 212 STREET BAYSIDE NY 11360
M136 CIP M 5 BREAD AND ROSES HS EXTERIOR MASONRY/ROOFS/SECURITY LIGHTING/PARAPETS 7920000 false -73.94777715277199 40.81720320936426 6 EDGECOMBE AVENUE NEW YORK NY 10030
K057 CIP K 16 BRKLYN ACAD. OF GLOBAL FINANCE NEW SCIENCE LAB SUITE 963000 false -73.93365273330902 40.691184878420714 125 STUYVESANT AVENUE Brooklyn NY 11221
M282 CIP M 2 BROADWAY EDUCATION CAMPUS LEASE (1ST & 2ND FLOOR) 20500000 false -74.01331914476191 40.70549393646826 26 BROADWAY NEW YORK NY 10004
X420 CIP X 12 BRONX COALITION HS (@X420) FY10 RESO A SCHOOL BASED HEALTH CLINIC 648000 false -73.87881047207371 40.831280981918596 1300 BOYNTON AVENUE Bronx NY 10472
X475 CIP X 10 BRONX ENGINEERING & TECH ACAD. PAVED AREAS-BLACKTOP 1270000 false -73.91213621128965 40.877210772673564 99 TERRACE VIEW AVENUE Bronx NY 10463
X445 CIP X 10 BRONX HS OF SCIENCE SCIENCE LAB UPGRADE 1494999 false -73.88689697376654 40.875578988056745 75 205 STREET Bronx NY 10468
K117 CIP K 13 BROOKLYN COMM FY10 RESO A OUT TRACK & MIXED USE 1061000 false -73.95894653911148 40.69261081871296 300 WILLOUGHBY AVENUE Brooklyn NY 11205
K515 CIP K 18 BROOKLYN THEATRE ARTS HS FY11 RESO A AUDITORIUM UPGRADE 961142 false -73.91781691770764 40.63268510415105 6565 FLATLANDS AVENUE BROOKLYN NY 11236
K480 CIP K 32 BUSHWICK HS OF SOCIAL JUSTICE FY10 RESO A GYM UPGRADE 539000 false -73.91084445466608 40.69697946567666 400 IRVING AVENUE BROOKLYN NY 11237
K865 CIP K 32 BUSHWICK LEADERS HS ACAD @K865 REPAIR OF SAGGING FLOORS 3338000 false -73.92824173943163 40.69513370850302 797 BUSHWICK AVENUE Brooklyn NY 11221
M282 CAP M 78 Broadway Education Campus (1st Lease 20500000 false -73.99674463976191 40.71350689574933 26 Broadway New York NY 10002
Q490 CIP Q 29 CAMPUS MAGNET-ENTREPRENEURSHIP EXTERIOR DOORS 84995.05 false -73.73568329125084 40.694293339066405 207 01 116TH AVENUE CAMBRIA HEIGHTS NY 11411
K500 CIP K 18 CANARSIE H.S. LL 41/16 COMPLIANCE 117726.54 false -73.89750860330521 40.64078389170152 1600 ROCKAWAY PKWY BROOKLYN NY 11236
M501 CIP M 5 CHOIR ACADEMY OF HARLEM ROOFS/PARAPETS 2871000 false -73.93946681971579 40.80736014272708 2005 MADISON AVENUE NEW YORK NY 10035
Q485 CIP Q 24 CLEVELAND HS RETAINING WALLS/EXTERIOR STEPS 5817000 false -73.88334858436963 40.70122489161548 21 27 HIMROD STREET QUEENS NY 11385
X440 CIP X 10 CLINTON HS WINDOWS/AREAWAY/PARAPETS/TOWER ROOFS 7290000 false -73.88672516295283 40.88178360066122 100 MOSHOLU PKWY BRONX NY 10468
M646 CIP M 2 CO-OP TECHNICAL H.S. PARAPETS/WINDOWS/ROOFS/EXT MASONRY 6292000 false -73.94612486053185 40.78386913950879 321 96 STREET New York NY 10128
K804 CIP K 15 COBBLE HILL H.S. FLOOD ELMNTN/EXT MASONRY 2983382 false -73.991150069287 40.684609118080985 347 BALTIC STREET Brooklyn NY 11201
M814 CAP M 78 Community Health Academy (CLOT New 43728000 false -73.94178600222767 40.83354081707594 504 158th St New York NY 10032
Q801 CIP Q 30 DOE BUREAU OF SUPPLIES ELEVATORS/ELEC SYSTEMS 7342000 false -73.93866902925225 40.74570244980828 44 36 VERNON BLVD QUEENS NY 11101
Q297 CAP Q 30 Demolition for IS 297 Demo 746444 false -73.88361254528269 40.75163073936716 74 03 34th Ave Jackson Heights NY 11372
M868 CAP M 2 Demolition for IS/HS 868 Demo 2182222 false -73.99224802961538 40.73631370241236 10 15th St New York NY 10003
Q290 CAP Q 24 Demolition for PS 290 Demo 3370000 false -73.88334858436963 40.70122489161548 55 20 Metropolitan Ave Ridgewood NY 11385
K615 CIP K 19 E NY HS OF TRANSIT TECHNOLOGY FY11 RESO A GYMNASIUM UPGRADE 419000 false -73.876114686314 40.678266696104096 1 WELLS STREET Brooklyn NY 11208
M064 CIP M 1 EARTH SCHOOL (@M064) FY09 RESO A GREENROOF 769000 false -73.98162129932635 40.72444152208924 600 6 STREET New York NY 10009
M855 CIP M 2 ELEANOR ROOSEVELT HS IP SURVEILLANCE CAMERAS 888000 false -74.02500811267907 40.62997664645282 411 76TH STREET NEW YORK NY 10001
X426 CIP X 11 EVANDER CHILDS AF ATHLETIC FIELD LIGHTING 797000 false -73.8621066953495 40.875978648353474 800 GUNHILL ROAD BRONX NY 10467
X425 CIP X 11 EVANDER CHILDS H.S. PA SYSTEM/ELECTRICAL UPGRADE 850000 false -73.8621066953495 40.875978648353474 800 GUN HILL ROAD Bronx NY 10467
M600 CIP M 2 FASHION INDUSTRIES VOC HS-M FY10 RESO A AUDITORIUM UPGRADE 734100 false -73.99588924404328 40.74508837330147 225 24 STREET New York NY 10011
M600 CIP M 2 FASHION INDUSTRIES VOC HS-M SAFETY/PAVEMENT/CONTAINER/ MASONRY/ROOF 5993000 false -73.99588924404328 40.74508837330147 225 24 STREET New York NY 10011
Q440 CIP Q 28 FOREST HILLS HS CONCRETE PAVED AREAS 3463000 false -73.84628429608335 40.720707263029794 67 01 110 STREET QUEENS NY 11375
Q440 CIP Q 28 FOREST HILLS HS FY11 RESO A LIBRARY UPGRADE 421000 false -73.84628429608335 40.720707263029794 67 01 110 STREET QUEENS NY 11375
K033 CIP K 14 FOUNDATIONS ACADEMY SCIENCE LAB UPGRADE 1165500 false -73.94668415925653 40.697149542940295 70 TOMPKINS AVENUE Brooklyn NY 11206
Q430 CIP Q 26 FRANCIS LEWIS H.S. FLOOD ELIMINATION/FENCING/PAVED AREA - CONCRETE 2579000 false -73.79462153515567 40.73987184371066 58 20 UTOPIA PKWY QUEENS NY 11365
K505 CIP K 20 FRANKLIN D. ROOSEVELT H.S. FY07 RESO A ASTRO TURF FOOTBALL FIELD 2470527 false -73.9817265392885 40.62052678025147 5800 20 AVENUE Brooklyn NY 11204
K175 CIP K 23 FREDERICK DOUGLAS ACADEMY PARAPETS/EXT MASONRY/FLOOD ELMNTN 2675000 false -73.91171337843976 40.66578774851303 226 BRISTOL STREET Brooklyn NY 11212
K490 CIP K 20 FT HAMILTON HS HEATING PLANT UPGRADE/CLIMATE CTRL 8296000 false -74.03991574863338 40.627991412441524 8301 SHORE ROAD Brooklyn NY 11209
M465 CIP M 6 GEORGE WASHINGTON H.S. FLOOD ELIMINATION/PARAPETS 12686000 false -73.92672451121956 40.856389753646916 549 AUDOBON AVENUE New York NY 10040
M460 CIP M 2 GRAMERCY ARTS HS - M SCIENCE DEMO ROOM UPGRADE 1059950 false -73.98760494227764 40.735537114027146 40 IRVING PLACE New York NY 10003
M625 CIP M 2 GRAPHIC COMMUNICATION ARTS WINDOWS/EXTERIOR MASONRY/PLAZA DECK 12647000 false -73.9905041730044 40.76336102095483 439 49 STREET New York NY 10019
M465 CIP M 6 HEALTH CAREERS & SCIENCE FY11 RESO A ELECTRICAL SYSTEM 516000 false -73.92672451121956 40.856389753646916 549 AUDOBON AVENUE New York NY 10040
Q585 CAP Q 78 HS 585 New 70250000 false -73.87835115518163 40.73871040256307 54 40 74th St Elmhurst NY 11373
X783 CAP X 78 HS 783 New 0 false -73.92662867570321 40.816146910599706 201 144th St Bronx NY 10451
Q456 CIP Q 24 HS FOR ARTS & BUS (@ Q456) WINDOWS 837000 false -73.85304068857687 40.749678220373596 105 25 HORACE HARDING EXPRESSWAY QUEENS NY 11368
K465 CIP K 17 HS FOR SERVICE & LEARNING FIRE ALARM SYSTEM 2625000 false -73.95845755993555 40.649532936565414 911 FLATBUSH AVENUE Brooklyn NY 11226
Q490 CIP Q 29 HUMANITIES & ARTS FY08 RESO A TECHNOLOGY 17555.4 false -73.73568329125084 40.694293339066405 207 01 116TH AVENUE CAMBRIA HEIGHTS NY 11411
M908 CAP M 5 Harlem Promise Academy New 60000000 false -73.94715683161196 40.81182512837363 245 129th St New York NY 10027
M280 CAP M 5 Harlem Village Academy New 36336432.4 false -73.94391077367071 40.80627609017035 35 124th St New York NY 10027
M010 CIP M 5 I.S. 10 FLOOD ELIMINATION 5393000 false -73.93690714053237 40.82438364705368 2581 7TH AVENUE NEW YORK NY 10039
K111 CIP K 32 I.S. 111 LL 41/16 COMPLIANCE 370000 false -73.9274722005684 40.70073228077929 35 STARR STREET Brooklyn NY 11221
X115 CIP X 10 I.S. 115 (@X115) EXT MASONRY/ROOFS/REINFORCING SUPPORT/PARAPETS 3833000 false -73.9001023348563 40.859718306516946 120 184 STREET Bronx NY 10468
K117 CIP K 13 I.S. 117 ELECTRICAL SYSTEMS 990000 false -73.95894653911148 40.69261081871296 300 WILLOUGHBY AVENUE Brooklyn NY 11205
Q125 CIP Q 24 I.S. 125 LOW-VOLT ELEC SYSTEMS 980000 false -73.9048471440804 40.74519376448069 46 02 47 AVENUE QUEENS NY 11377
M131 CIP M 2 I.S. 131 LL 41/16 COMPLIANCE 139807.64 false -73.99286250634624 40.71645702482035 100 HESTER STREET New York NY 10002
X131 CIP X 8 I.S. 131 ROOFS/SAFETY SYSTEM/EXT MASONRY/FLOOD ELIMINATION 6780000 false -73.85977399112697 40.82386302071817 885 BOLTON AVENUE Bronx NY 10473
X135 CIP X 11 I.S. 135 EXT MASONRY/WINDOWS/ROOFS 6988000 false -73.86461178363403 40.86208256356063 2441 WALLACE AVENUE Bronx NY 10467
X137 CIP X 10 I.S. 137 PLANYC BOILER CONVERSION/PLANYC CLIMATE CTRL 4680000 false -73.89664962860274 40.85466127151118 2225 WEBSTER AVENUE Bronx NY 10457
X139 CIP X 7 I.S. 139 EXT MASONRY/PARAPETS/FLOOD ELMNTN/WINDOWS/ROOFS 13447000 false -73.91782345430987 40.81004862442692 345 BROOK AVENUE Bronx NY 10454
K014 CIP K 22 I.S. 14 PAVED AREA - BLACKTOP 659572.05
X142 CIP X 11 I.S. 142 FY09 RESO A SCIENCE LAB 735800 false -73.84075720750138 40.88554553526394 3750 BAYCHESTER AVENUE Bronx NY 10466
M143 CIP M 6 I.S. 143 ROOFS/FLOOD ELMNTN/EXT MASONRY 4237000 false -73.9320770216135 40.84941102208005 511 182 STREET New York NY 10033
X144 CIP X 11 I.S. 144 ROOFS/EXT MASONRY/PARAPETS/FLOOD ELIMINATION 4891000 false -73.83609949442072 40.863858665108886 2545 GUNTHER AVENUE BRONX NY 10464
X151 CIP X 7 I.S. 151 WINDOWS/EXTERIOR MASONRY 3426000 false -73.9211309650046 40.82298359886116 250 156 STREET Bronx NY 10451
X158 CIP X 12 I.S. 158 PLANYC BOILER CONVRSN/PLANYC CLIMATE CTRL 3918000 false -73.90004072543645 40.827686311428195 800 HOME STREET Bronx NY 10456
X166 CIP X 9 I.S. 166 PA SYSTEM 798000 false -73.91779283496383 40.82872889992432 250 164 STREET Bronx NY 10456
K171 CIP K 19 I.S. 171/P.S. 7 SWB-FACADE/PARAPETS/PAVED AREA-BLACKTOP/FENCING 4828290 false -73.86966791838911 40.6861530810444 528 RIDGEWOOD AVENUE BROOKLYN NY 11208
X183 CIP X 7 I.S. 183 PLANYC BOILER/PLANYC CLIMATE CTRL 3492000 false -73.92553701094046 40.813386726364335 339 MORRIS AVENUE Bronx NY 10451
X184 CIP X 7 I.S. 184 PLANYC BOILER/PLANYC CLIMATE CTRL 4910270 false -73.90589968772917 40.81888494686362 778 FOREST AVENUE BRONX NY 10456
X129 CIP X 12 I.S. 191 @X129 NEW SCIENCE DEMONSTRATION ROOM 438000 false -73.8865507352739 40.84549455019818 2055 MAPES AVENUE Bronx NY 10460
Q192 CIP Q 29 I.S. 192 CITY COUNCIL REQ - LIGHTING FIXTURES 1800000 false -73.75923519834566 40.69812711747255 109 89 204 STREET QUEENS NY 11412
X193 CIP X 12 I.S. 193 PLANYC BOILER/PLANYC CLIMATE CTRL 3885000 false -73.88973979569231 40.84359404962676 1919 PROSPECT AVENUE Bronx NY 10457
M195 CIP M 5 I.S. 195 (ECF) PAVED AREAS BLACKTOP 770000 false -73.95739030775974 40.81937508503853 625 133 STREET New York NY 10027
M195 CIP M 5 I.S. 195 (ECF) PLANYC BOILER CONVRSN/PLANYC CLIMATE CTRL 3788000 false -73.95739030775974 40.81937508503853 625 133 STREET New York NY 10027
M195 CIP M 5 I.S. 195 (ECF) SCIENCE DEMO ROOM UPGRADE 469000 false -73.95739030775974 40.81937508503853 625 133 STREET New York NY 10027
K002 CIP K 17 I.S. 2 SCIENCE DEMO ROOM UPGRADE 345000 false -73.95158492978685 40.6561968174429 655 PARKSIDE AVE BROOKLYN NY 11226
K211 CIP K 18 I.S. 211 WALK IN FREEZER REPLACEMENT 343200 false -73.89642371322941 40.64348164485336 1001 100 STREET BROOKLYN NY 11236
X116 CIP X 12 I.S. 216 (@X116) PLANYC BOILER CONVERSION/PLANYC CLIMATE CONTROL 4468000 false -73.89392410102988 40.822428225918 977 FOX STREET Bronx NY 10459
K218 CIP K 19 I.S. 218 WALK IN FREEZER REPLACEMENT 2120000 false -73.8742292684109 40.67070199017694 370 FOUNTAIN AVENUE Brooklyn NY 11208
M218 CIP M 6 I.S. 218 FLOOD ELIMINATION/WINDOWS/ROOFS 1867000
X148 CIP X 9 I.S. 219 (OLD I.S. 148) RETAINING WALL 583000 false -73.90440606498304 40.833636708483105 3630 THIRD AVENUE Bronx NY 10456
X022 CIP X 9 I.S. 22 FLOOD ELIMINATION/EXT MASONRY/PARAPETS 3990000 false -73.91408537225458 40.83322765425807 270 167 STREET Bronx NY 10456
X149 CIP X 7 I.S. 223 (@X149) FY10 RESO A LIBRARY 328000 false -73.92087771305378 40.814006958025736 360 145 STREET Bronx NY 10454
Q226 CIP Q 27 I.S. 226 EXT MASONRY/ROOFS 6691000 false -73.81770717164864 40.67334524268887 121 10 ROCKAWAY BLVD SO OZONE PARK NY 11420
Q227 CIP Q 30 I.S. 227 CLIMATE CONTROL/HEATING PLANT UPGRADE 5294240 false -73.8723788986672 40.76341327370369 32 02 JUNCTION BLVD QUEENS NY 11369
X082 CIP X 9 I.S. 232 (OLD 82) @X082 ACCESSIBILITY/FIRE ALARM 8193000 false -73.91609317547116 40.84901889749711 1700 MACOMBS ROAD Bronx NY 10453
R024 CIP R 31 I.S. 24 AUDITORIUM FLOORS 77000 false -74.14643932417457 40.54537484828736 225 CLEVELAND AVENUE Staten Island NY 10308
K246 CIP K 17 I.S. 246 SWB EXT MASONRY/SWB FLOOD/SWB WINDOWS/ROOF/PARAPET 4877000 false -73.95284496748633 40.64867994929756 72 VERONICA PLACE Brooklyn NY 11226
K252 CIP K 18 I.S. 252 LL 41/16 COMPLIANCE 29175.77 false -73.92001930874018 40.658327698451274 1084 LENOX ROAD Brooklyn NY 11212
M118 CIP M 3 I.S. 256 (@M118) IP SURVEILLANCE CAMERAS 216300 false -73.97053578315399 40.79156776872092 154 93 STREET New York NY 10025
M118 CIP M 3 I.S. 256 (@M118) STRUCTURAL BEAMS-REINFORCING 410160 false -73.97053578315399 40.79156776872092 154 93 STREET New York NY 10025
K265 CIP K 13 I.S. 265 SCIENCE LAB 765000 false -73.97572262403403 40.6963585351778 101 PARK AVENUE Brooklyn NY 11205
K278 CIP K 22 I.S. 278 ROOFS/EXT MASONRY/FLOOD ELMNTN 5700000 false -73.93925429415825 40.60673733465248 1925 STUART STREET Brooklyn NY 11229
K285 CIP K 18 I.S. 285 HEATING PLANT UPG/CLIMATE CTRL 4342000 false -73.921125893014 40.64688182984673 5905 BEVERLY ROAD Brooklyn NY 11203
K291 CIP K 32 I.S. 291 HEATING PLANT UPGRADE/LOW-VOLTAGE 15199800 false -73.91527095847802 40.695256718115104 231 PALMETTO STREET Brooklyn NY 11221
K292 CIP K 19 I.S. 292 CONCRETE FACADE 3477000 false -73.89288114787357 40.67148750548741 300 WYONA STREET Brooklyn NY 11207
K318 CIP K 14 I.S. 318 PARAPETS/EXT MASONRY/EAST ROOF & FAN ROOM ROOF 4340000 false -73.94902462531712 40.702422370537974 101 WALTON STREET Brooklyn NY 11206
K320 CIP K 17 I.S. 320 FLOOD ELMNTN/PARAPETS/SAFETY SYSTEMS/EXT MASONRY 3000050 false -73.95904314893046 40.66501317051537 46 MCKEEVER PLACE Brooklyn NY 11225
M125 CIP M 5 I.S. 362 @ M125 SCIENCE LAB 1354564 false -73.95506966627367 40.81015743904045 425 123 STREET New York NY 10027
X067 CIP X 12 I.S. 372 - X NEW SCIENCE LAB SUITE 945000 false -73.88479553814723 40.84392182388185 2024 MOHEGAN AVENUE Bronx NY 10460
K383 CIP K 32 I.S. 383 PLANYC BOILER CONVERSION/PLANYC CLIMATE CONTROL 4668000 false -73.91986972170302 40.69762704651303 1300 GREENE AVENUE Brooklyn NY 11237
K390 CIP K 17 I.S. 390 STAIRS IN STAIRWELL/FLOOD ELIM/CEC REQ-WINDOWS 4980000 false -73.93695770187597 40.67268717852895 1224 PARK PLACE Brooklyn NY 11213
K049 CIP K 14 I.S. 49 FIRE ALARM 468000
X052 CIP X 8 I.S. 52 PARAPETS/MASONRY/ROOFS/FLOOD/PAVED AREAS/SAFETY 8893000 false -73.90236106648733 40.815402542289604 681 KELLY STREET Bronx NY 10455
K055 CIP K 23 I.S. 55 SAFETY SYSTEM/EXT MASONRY/WINDOWS 4535000 false -73.91355073965249 40.67414724704465 2021 BERGEN STREET Brooklyn NY 11233
Q059 CIP Q 29 I.S. 59 LIBRARY UPGRADE 408000 false -73.75087393328533 40.66971118122609 132 55 RIDGEDALE STREET SPRINGFIELD GARDENS NY 11413
K061 CIP K 17 I.S. 61 BOILER REPLACEMENT/CONCRETE PAVER/CLIMATE CTRL 5462800 false -73.9494072266281 40.66397432612488 400 EMPIRE BLVD Brooklyn NY 11225
R072 CIP R 31 I.S. 72 ELEVATORS & ESCALATORS 691000 false -74.15872479868553 40.59325258206939 33 FERNDALE AVENUE Staten Island NY 10314
Q849 CIP Q 24 I.S. 77 AUDITORIUM UPGRADE 1588000 false -73.90222734682403 40.699542257956786 976 SENECA AVENUE RIDGEWOOD NY 11385
Q849 CIP Q 24 I.S. 77 EXTERIOR MASONRY/WINDOWS/ROOFS/PARAPETS/AC 12189000 false -73.90222734682403 40.699542257956786 976 SENECA AVENUE RIDGEWOOD NY 11385
K078 CIP K 22 I.S. 78 FLOOD ELMNTN/EXT MASONRY 1589500 false -73.91286070496677 40.62118169409423 1420 68 STREET Brooklyn NY 11234
X084 CIP X 12 I.S. 84 (@X084) PLANYC BOILER CONVRSN/PLANYC CLIMATE CTRL 3997000 false -73.88752511974951 40.830644846579055 1434 LONGFELLOW AVENUE Bronx NY 10459
K043 CIP K 21 I.S. 98 EXT MASONRY/ROOFS/SAFETY SYSTEMS/PARAPETS 4869000 false -73.95376310696645 40.58324060677732 1401 EMMONS AVENUE Brooklyn NY 11235
X098 CIP X 12 I.S. 98 RETAINING WALL 229571 false -73.89054065425974 40.83591680891802 1619 BOSTON ROAD Bronx NY 10460
X139 CIP X 7 INTERNATIONAL COMMUNITY NEW SCIENCE LAB SUITE 1182000 false -73.91782345430987 40.81004862442692 345 BROOK AVENUE Bronx NY 10454
X113 CIP X 11 IS 113 FY07 RES0 A PLAYGROUND REDEVELOPMENT 555000.05 false -73.86088460706405 40.88086639044798 3710 BARNES AVE Bronx NY 10467
X285 CAP X 9 IS 285 New 34111000 false -73.92787186717345 40.838131334426876 200 167th St Bronx NY 10452
Q297 CIP Q 30 IS 297 DEMOLITION FOR IS 297 746444 false -73.88361254528269 40.75163073936716 74 03 34TH AVE JACKSON HEIGHTS NY 11372
X147 CIP X 9 IS 339 (OLD IS 147X) PLANYC BOILER/PLANYC CLIMATE CTRL 7116000 false -73.90441220971972 40.84131870954352 1600 WEBSTER AVENUE Bronx NY 10457
Q404 CAP Q 78 IS/HS 404 New 61098000 false -73.93866902925225 40.74570244980828 1 50 51st Ave Long Island City NY 11101
K422 CAP K 78 IS/HS @ Spring Creek New 72847565 false -73.87479320757765 40.65755969070249 1065 Elton St Brooklyn NY 11208
X475 CIP X 10 J F KENNEDY HS FY09 FINAL C OF O FOR MULTI-CAMPUS 8387000 false -73.91213621128965 40.877210772673564 99 TERRACE VIEW AVENUE Bronx NY 10463
Q141 CIP Q 30 J.H.S. 141 ROOFS/SAFETY/EXT MASONRY/PARAPETS 7459000 false -73.90960650023976 40.780092072491186 37 11 21 AVENUE QUEENS NY 11105
X141 CIP X 10 J.H.S. 141 HEATING PLANT UPGRADE/CLIMATE CONTROL 3967000 false -73.9131873185513 40.88826732332943 660 237 STREET Bronx NY 10463
Q157 CIP Q 28 J.H.S. 157 ROOFS/WDWS/HEATING UPG/FLOOD/MASON/PARAPET/CLIMATE 14279000 false -73.86148084756303 40.72646491702238 63 55 102ND ST QUEENS NY 11374
Q168 CIP Q 25 J.H.S. 168 ACCESSIBILITY/FIRE ALARM/CLIM CTRL/HEAT PL UPG 8877000 false -73.79226817393703 40.72816440726166 158 40 76 ROAD QUEENS NY 11366
Q168 CIP Q 25 J.H.S. 168 SCIENCE LAB UPGRADE 972000 false -73.79226817393703 40.72816440726166 158 40 76 ROAD QUEENS NY 11366
Q180 CIP Q 27 J.H.S. 180 WINDOW/AC RETROFIT/AC SPLIT/MASONRY/PARAPET/ROOFS 22000000 false -73.85077700055808 40.57657830564432 3 20 BEACH 104 STREET ROCKAWAY NY 11694
Q237 CIP Q 25 J.H.S. 237 CEC REQUEST - SCIENCE LAB UPG 1176000 false -73.82147854789662 40.7512997969481 46 21 COLDEN STREET QUEENS NY 11355
Q025 CIP Q 25 J.H.S. 25 SWB-EXT MASONRY/ROOFS/PARAPETS 5618000 false -73.82147854789662 40.7512997969481 34 65 192 STREET QUEENS NY 11355
K303 CIP K 21 J.H.S. 303 FY11 RESO A ELECTRICAL SYSTEM 196000 false -73.9727279509789 40.582102240554626 501 WEST AVENUE Brooklyn NY 11224
K324 CIP K 16 J.H.S. 324 PLANYC BOILER CONVRSN/PLANYC CLIMATE CTRL 3819000 false -73.93217356292678 40.68830858053017 800 GATES AVENUE Brooklyn NY 11221
M045 CIP M 4 J.H.S. 45 EXT MASONRY/ROOFS/PARAPETS 6670000 false -73.93335561512028 40.798869844574995 2351 1ST AVENUE New York NY 10035
K057 CIP K 16 J.H.S. 57 GYM ROOF/SEWAGE FLOODING/PARAPETS/EXT MASONRY 8625000 false -73.93365273330902 40.691184878420714 125 STUYVESANT AVENUE Brooklyn NY 11221
M070 CIP M 2 J.H.S. 70 EXTERIOR MASONRY/PARAPETS/ROOFS/WINDOWS 10489000 false -74.00204411405305 40.742083302451746 333 17 STREET NEW YORK NY 10011
Q072 CIP Q 28 J.H.S. 72 EXT MASONRY/ROOFS/FLOOD ELMNTN/PARAPETS 6176000 false -73.77530690169215 40.6769452621142 133 25 ROCHDALE VILLAG NY 11434
X080 CIP X 10 J.H.S. 80/P.S. 280 FLOOD ELIMINATION 1091773 false -73.88147439492262 40.87619978760749 149 MOSHOLU PKWY BRONX NY 10467
Q470 CIP Q 28 JAMAICA HS CLIMATE CONTROL/HEATING PLANT UPGRADE 8100000 false -73.79282099978928 40.71311535449007 167 01 GOTHIC DRIVE QUEENS NY 11432
M440 CIP M 2 JAMES BALDWIN HS LIBRARY UPGRADE 1132000 false -74.00211145861485 40.74287308397775 351 18 STREET New York NY 10011
K425 CIP K 22 JAMES MADISON HS FIRE ALARM 485500 false -73.94845748858913 40.609742865286414 3787 BEDFORD AVENUE Brooklyn NY 11229
K425 CIP K 22 JAMES MADISON HS SCIENCE LAB UPGRADE 985000 false -73.94845748858913 40.609742865286414 3787 BEDFORD AVENUE Brooklyn NY 11229
Q008 CIP Q 28 JHS 8 SCIENCE LAB UPGRADE 1081000 false -73.7875740339145 40.698104881734935 108 35 167 STREET JAMAICA NY 11433
Q425 CIP Q 25 JOHN BOWNE H.S. WIND REPLACE/AC RETROFIT/WIND BOE PORTION/UPG F.A. 27239000 false -73.82610630716033 40.730323085042414 63 25 MAIN STREET FLUSHING NY 11367
K460 CIP K 15 JOHN JAY HS CEC REQUEST-HEAT'G PLANT UPG/ELEC SYS/CLIMATE CTRL 8168000 false -73.97924096910276 40.669623280409056 237 7TH AVENUE Brooklyn NY 11215
K400 CIP K 21 LAFAYETTE HS UPGRADE BOILER PLANT/CLIMATE CONTROL 12400000 false -73.98615807328032 40.59448014682783 2630 BENSON AVENUE Brooklyn NY 11214
Q490 CIP Q 29 LAW, GOVERNMENT & COMMUNITY HS CAMPUS RESTRUCTURING 435000 false -73.73568329125084 40.694293339066405 207 01 116TH AVENUE CAMBRIA HEIGHTS NY 11411
X406 CIP X 8 LEHMAN AF ATHLETIC FIELDS 3748000 false -73.83830582037355 40.840618266233676 3000 TREMONT AVENUE BRONX NY 10461
X405 CIP X 8 LEHMAN HS FY07 RESO A COMPUTER EQUIPMENT UPGR 75757.5758 false -73.83830582037355 40.840618266233676 3000 TREMONT AVENUE Bronx NY 10461
X405 CIP X 8 LEHMAN HS STAIR WINDOWS 1087000 false -73.83830582037355 40.840618266233676 3000 TREMONT AVENUE Bronx NY 10461
M645 CIP M 2 LIFE SCIENCE SECONDARY (@M645) FLOOD ELMNTN/EXT MASONRY/PARAPETS/ROOFS 7819500 false -74.03340357628376 40.616237105936534 320 96 STREET New York NY 10028
M490 CIP M 3 MARTIN LUTHER KING HS AUD/ALARM REPLACEMENT/FINAL C OF O/VENTILATION 4647000 false -73.98485156692796 40.77425845083081 122 AMSTERDAM AVENUE New York NY 10023
X099 CIP X 12 METROPOLITAN HS @ FORMER PS99X CODE COMPLIANCE/PA SYSTEM/PARAPET/MASONRY/ROOFS 5186000 false -73.89313106784448 40.82552621616202 1180 REVEREND JAMES POLITE AVE BRONX NY 10459
M081 CIP M 3 MID-MAN ADULT TRAINING CENTER VENTILATION/ELEC SYSTEM 3711000 false -73.95128826417978 40.80602392163958 212 120TH ST NEW YORK NY 10027
Q520 CIP Q 30 MIDDLE COLLEGE HS @LAGUARDIA DEMOLITION FOR MIDDLE COLLEGE HS 13112000 false -73.93866902925225 40.74570244980828 45 35 VAN DAM ST LONG ISLAND CITY NY 11101
K406 CIP K 21 MIDWOOD AF (MAIN) FY11 RESO A ATHLETIC FIELDS 2146000 false -73.95905922151692 40.62291467677543 1124 17TH STREET BROOKLYN NY 11230
M435 CIP M 4 MNHT CENTER FOR MATH & SCIENCE INTERIOR SPACES MARBLE PANELS ONLY 843000 false -73.9336482061862 40.794391919064594 260 PLEASANT AVENUE New York NY 10029
X400 CIP X 9 MORRIS HS CERTIFICATE OF OCCUPANCY 5229000 false -73.90448079300582 40.8276109731601 1110 BOSTON RD BRONX NY 10456
K390 CIP K 17 MS 334 SCIENCE DEMO ROOM UPGRADE 808000 false -73.93695770187597 40.67268717852895 1224 PARK PLACE Brooklyn NY 11213
Q520 CAP Q 78 Middle College HS @ LaGuardia New 27927000 false -73.93866902925225 40.74570244980828 45 35 Van Dam St Long Island City NY 11101
Q520 CAP Q 78 Middle College HS @ LaGuardia Room Conversion 13112000 false -73.93866902925225 40.74570244980828 45 35 Van Dam St Long Island City NY 11101
R435 CIP R 31 NEW DORP HS LL 41/16 COMPLIANCE 10621.99 false -74.10726241466374 40.56922370455037 465 NEW DORP LANE Staten Island NY 10306
K032 CIP K 15 NEW HORIZONS SCHOOL FY11 RESO A AUDITORIUM UPDATE 228000 false -73.99193273420018 40.680429275762485 317 HOYT STREET Brooklyn NY 11231
M868 CIP M 2 NEW HS DEMOLITION FOR IS/HS 868 2182222 false -73.99224802961538 40.73631370241236 10 15TH ST NEW YORK NY 10003
K445 CIP K 20 NEW UTRECHT HS EXT MASONRY/FLOOD ELMNTN/PARAPETS/ROOFS 10570000 false -74.00368977353216 40.61345273159829 1601 80TH ST Brooklyn NY 11214
K445 CIP K 20 NEW UTRECHT HS FY09 RESO A LIBRARY UPGRADE 353250 false -74.00368977353216 40.61345273159829 1601 80TH ST Brooklyn NY 11214
Q450 CIP Q 30 NEWCOMERS HS EXT MASONRY/PARAPETS/FLOOD ELMNTN 8395000 false -73.93866902925225 40.74570244980828 28 01 41ST AVENUE LONG ISLAND CITY NY 11101
Q455 CIP Q 24 NEWTOWN HS FLOORS 2662000 false -73.87475600018911 40.74125600016447 48 01 90 STREET QUEENS NY 11373-4099
M001 CIP M 2 P.S. 1 EXTERIOR MASONRY/PARAPETS/PAVED AREAS-CONCRETE 5139000 false -73.99734184420807 40.712756780441026 8 HENRY STREET New York NY 10038
X001 CIP X 7 P.S. 1 IP SURVEILLANCE CAMERAS 1056000 false -73.91874134609046 40.818762661509254 335 152 STREET Bronx NY 10451
Q100 CIP Q 27 P.S. 100 FLOOD ELMNTN/EXT MASONRY/PARAPETS 3199900 false -73.81770717164864 40.67334524268887 111 11 118 STREET JAMAICA NY 11420
K101 CIP K 21 P.S. 101 RESO A - RESO A SCIENCE LAB 268800 false -73.99175987597347 40.59787681678778 2360 BENSON AVENUE Brooklyn NY 11214
M101 CIP M 4 P.S. 101 ACCESSIBILITY 3689000 false -73.94443112132485 40.79566898981534 141 111 STREET NEW YORK NY 10029
M101 CIP M 4 P.S. 101 ELEC UPGRADE 287950 false -73.94443112132485 40.79566898981534 141 111 STREET NEW YORK NY 10029
X103 CIP X 11 P.S. 103 FY11 RESO A AUDITORIUM UPGRADE 419000 false -73.8614419003563 40.89224585042134 4125 CARPENTER AVENUE Bronx NY 10466
Q105 CIP Q 27 P.S. 105 SWB EXT MASONRY/PARAPETS 1050000 false -73.78189411037111 40.59623844790385 420 BEACH 51 STREET FAR ROCKAWAY NY 11691
K108 CIP K 19 P.S. 108 FY11 RESO A ELECTRICAL SYSTEM 345900 false -73.88403250144414 40.681012991519715 200 LINWOOD STREET Brooklyn NY 11208
Q108 CIP Q 27 P.S. 108 CAFE MULTIPURPOSE ROOM UPG 233000 false -73.81770717164864 40.67334524268887 108 10 109 AVENUE SO OZONE PARK NY 11420
X011 CIP X 9 P.S. 11 FLOOD ELMNTN/ROOFS/MASONRY/PARAPETS 6116000 false -73.92578827979769 40.83927054580515 1257 OGDEN AVENUE Bronx NY 10456
X011 CIP X 9 P.S. 11 SIDEWALK BRIDGE 19442.75 false -73.92578827979769 40.83927054580515 1257 OGDEN AVENUE Bronx NY 10456
K110 CIP K 14 P.S. 110 ROOFS/WINDOWS 3778000 false -73.94223625609604 40.723642548516075 124 MONITOR STREET Brooklyn NY 11222
M110 CIP M 1 P.S. 110 FLOOD ELIMINATION 547000 false -73.97981939917048 40.715620302518175 285 DELANCY STREET New York NY 10002
M111 CIP M 2 P.S. 111 CLIMATE CONTROL/HEATING PLANT UPGRADE 4305729 false -73.98953901918651 40.76616371249781 440 53 STREET New York NY 10019
Q111 CIP Q 30 P.S. 111 HEATING PLANT UPG/CLIMATE CTRL 3811000 false -73.93866902925225 40.74570244980828 37 15 13 STREET QUEENS NY 11101
K112 CIP K 20 P.S. 112 PARAPETS/EXT MASONRY/FLOOD ELMNTN 1420000 false -74.00071660633716 40.619828663672465 7115 15 AVENUE Brooklyn NY 11228
K115 CIP K 18 P.S. 115 EXT MASONRY/ROOFS/PARAPETS 5747000 false -73.89697682968284 40.63477746307819 1500 92ND ST Brooklyn NY 11236
M115 CIP M 6 P.S. 115 EXTERIOR MASONRY/HAZARDOUS-PARAPETS/ROOFS 2979000 false -73.93487128414608 40.84641769845956 586 177 STREET New York NY 10033
K116 CIP K 32 P.S. 116 FY11 RESO A SCIENCE 388000 false -73.91643018838859 40.69774977550555 515 KNICKERBOCKER AVENUE Brooklyn NY 11237
M116 CIP M 2 P.S. 116 FY11 RESO A PLAYGROUND REDEVELOPMENT 300000 false -73.97834193335258 40.74491153710013 210 33 STREET New York NY 10016
X012 CIP X 11 P.S. 12 HEATING PLT UPG/CLIMATE CNTRL/LOW-VOLT ELECTRICAL 5722850 false -73.84450496658253 40.84010546581863 2555 TRATMAN AVENUE Bronx NY 10461
K121 CIP K 21 P.S. 121 SWB-EXT MASONRY 1295000 false -73.97875690985585 40.62330608676003 5301 20TH AVENUE Brooklyn NY 11204
Q121 CIP Q 28 P.S. 121 CLIMATE CONTROL/HEATING PLANT UPGRADE 3305000 false -73.81770717164864 40.67334524268887 126 10 109 AVENUE SO OZONE PARK NY 11420
M123 CIP M 5 P.S. 123 FY10 RESO A SCIENCE LAB UPGRADE 444000 false -73.94425698262674 40.81972211192899 301 140 STREET New York NY 10030
Q124 CIP Q 27 P.S. 124 EXT MASONRY/PARAPETS 3342000 false -73.81770717164864 40.67334524268887 129 15 150 AVENUE SO OZONE PARK NY 11420
M124 CIP M 2 P.S. 124 (ECF) PARAPETS/EXTERIOR MASONRY 1367000 false -73.99579682364542 40.71420254465372 40 DIVISION STREET New York NY 10002
M126 CIP M 2 P.S. 126 FY10 RESO A LIBRARY 415000 false -73.9966721705172 40.710854298398544 80 CATHERINE STREET New York NY 10038
X126 CIP X 9 P.S. 126 (ECF) MASONRY/ROOFS/FLOOD ELMNTN/PARAPETS 5194000 false -73.9283372125368 40.83581122271332 175 166 STREET Bronx NY 10452
K127 CIP K 20 P.S. 127 EXT MASONRY 2149000 false -74.01885662493696 40.62406545959219 7805 7 AVENUE Brooklyn NY 11209
Q127 CIP Q 30 P.S. 127 AUD UPG/CAFETERIA MULTIPURPOSE RM UPG 985000 false -73.8723788986672 40.76341327370369 98 01 25 AVENUE EAST ELMHURST NY 11369
X129 CIP X 12 P.S. 129 (PAIRED W X234) EXTERIOR MASONRY 2598000 false -73.8865507352739 40.84549455019818 2055 MAPES AVENUE Bronx NY 10460
X129 CIP X 12 P.S. 129 (PAIRED W X234) SIDEWALK BRIDGE (EXT. MASONRY) 32157.31 false -73.8865507352739 40.84549455019818 2055 MAPES AVENUE Bronx NY 10460
K132 CIP K 14 P.S. 132 FLOOD ELMNTN/WINDOWS/PARAPETS 6597000 false -73.9456777023208 40.71219332880771 320 MANHATTAN AVENUE Brooklyn NY 11206
K132 CIP K 14 P.S. 132 FY10 RESO A GYM RENOVATION 70000 false -73.9456777023208 40.71219332880771 320 MANHATTAN AVENUE Brooklyn NY 11206
K132 CIP K 14 P.S. 132 WORK REQUIRED TO OBTAIN C OF O 932000 false -73.9456777023208 40.71219332880771 320 MANHATTAN AVENUE Brooklyn NY 11206
M132 CIP M 6 P.S. 132 FY11 RESO A SCIENCE LAB 243500 false -73.93432269770818 40.85071645775963 185 WADSWORTH AVENUE New York NY 10033
X132 CIP X 9 P.S. 132 INTERIOR STRUCTURAL INVESTMENT - TEST 5005000 false -73.90656891847989 40.83194251909681 1245 WASHINGTON AVENUE Bronx NY 10456
K135 CIP K 18 P.S. 135 PARAPETS/FLOOD ELMNTN/ROOFS 1784000 false -73.93311810571299 40.65357812334444 684 LINDEN BLVD Brooklyn NY 11203
K138 CIP K 17 P.S. 138 ROOFS/PARAPETS/EXT MASONRY 2793000 false -73.95141196170016 40.674353675202426 760 PROSPECT PLACE Brooklyn NY 11216
K138 CIP K 17 P.S. 138 SCIENCE DEMO ROOM UPGRADE 762000 false -73.95141196170016 40.674353675202426 760 PROSPECT PLACE Brooklyn NY 11216
M844 CIP M 2 P.S. 138 (@M844) SWB - FACADE/PARAPETS/ROOFS 8833000 false -73.97802974198606 40.73757796345728 400 1ST AVENUE New York NY 10010
K849 CIP K 22 P.S. 139 AX (OLD 134) LL 41/16 COMPLIANCE 100000 false -73.97391982714538 40.632244467750226 4001 18 AVENUE Brooklyn NY 11208
R014 CIP R 31 P.S. 14 ROOFS/EXT MASONRY/WINDOWS/FLOORS/SAFETY SYSTEMS 3315000 false -74.07837687526822 40.622148795415534 100 TOMPKINS AVENUE Staten Island NY 10304
Q140 CIP Q 28 P.S. 140 PARAPETS 3269000 false -73.77530690169215 40.6769452621142 116 00 166 ST JAMAICA NY 11434
M142 CIP M 1 P.S. 142 ELEVATORS & ESCALATORS/TOILETS-STUDENTS 2995000 false -73.98376386528082 40.71945606619147 100 ATTORNEY STREET New York NY 10002
K145 CIP K 32 P.S. 145 PARAPETS/FLOOD ELMNTN/EXT MASONRY/EXT LIGHTING 4737575 false -73.93232374110994 40.7016598916867 100 NOLL STREET Brooklyn NY 11206
K142 CIP K 15 P.S. 146 (@K142) PARAPETS/EXTERIOR MASONRY/ROOFS/WINDOWS/FLOOD 13106731 false -74.00136121297172 40.68011121449034 610 HENRY STREET Brooklyn NY 11231
Q147 CIP Q 29 P.S. 147 FLOORS 537000
K015 CIP K 15 P.S. 15 LIBRARY UPGRADE 411054
M153 CIP M 6 P.S. 153 DEFECTIVE MASONRY/ROOFS/DOORS/PARAPETS 4134000 false -73.94689450753023 40.8262600138953 1750 AMSTERDAM AVENUE New York NY 10031
Q154 CIP Q 25 P.S. 154 ACCESSIBILITY/ELEC SYS/MASONRY/ROOFS/FLOOD/PARAPET 6127000 false -73.79226817393703 40.72816440726166 75 02 162 STREET FLUSHING NY 11366
M155 CIP M 4 P.S. 155 FLOOD ELMNTN/PARAPETS/EXT MASONRY 2350000 false -73.93679763009355 40.797501313680264 319 117 STREET New York NY 10035
Q156 CIP Q 29 P.S. 156 SWB - EXT MASONRY/FLOOD ELMNTN/WINDOWS/PARAPETS 7354000 false -73.75087393328533 40.66971118122609 229 02 137 AVENUE SPRINGFIELD GAR NY 11413
X156 CIP X 7 P.S. 156 CINDER BLOCK WALLS & CEILING BEAMS/FLOOD ELIMN 9780000 false -73.92024166597307 40.82226334901861 750 CONCOURSE VILLAGE Bronx NY 10451
K157 CIP K 14 P.S. 157 SWB-MASONRY 1843000 false -73.95959701353979 40.69546110023352 850 KENT AVENUE Brooklyn NY 11205
X157 CIP X 7 P.S. 157 FY11 RESO A LIBRARY UPGRADE 178000 false -73.90861019557366 40.81920242494304 757 CAULDWELL AVENUE Bronx NY 10456
K158 CIP K 19 P.S. 158 EXT MASONRY/FLOOD ELIMINATION 4244000 false -73.88480467674624 40.672471173748015 400 ASHFORD STREET Brooklyn NY 11207
K016 CIP K 14 P.S. 16 CEC REQUEST - STUDENT CAFETERIA UPG 1139000 false -73.96144993294666 40.706051659903764 157 WILSON STREET Brooklyn NY 11211
X160 CIP X 11 P.S. 160 FY11 RESO A LIBRARY 345300 false -73.8242748469253 40.86466106194175 4140 HUTCHINSON RIVER PARKWAY Bronx NY 10475
K161 CIP K 17 P.S. 161 LIBRARY UPGRADE 89500 false -73.94885261044026 40.66615564566118 330 CROWN STREET Brooklyn NY 11225
X163 CIP X 9 P.S. 163 INTERIOR MODERNIZATIONS/ROOFS 3143000 false -73.89841328719618 40.85190466527893 2075 WEBSTER AVENUE Bronx NY 10457
M165 CIP M 3 P.S. 165 ROOF TILES & SNOW GUARD/EXT MASONRY/FLOOD/PARAPETS 2118994.65 false -73.96526411800443 40.80275180384162 234 109 STREET New York NY 10025
K017 CIP K 14 P.S. 17 WINDOWS/EXT MASONRY/FLOOD ELMNTN/ROOFS/PARAPETS 7842000 false -73.95663645640386 40.715277522913524 208 5 STREET Brooklyn NY 11211
M173 CIP M 6 P.S. 173 FIRE ALARM 359900 false -73.94042010106682 40.84561730185351 306 FORT WASHINGTON AVE New York NY 10033
Q174 CIP Q 28 P.S. 174 FY11 RESO A LIBRARY UPGRADE 104000 false -73.86148084756303 40.72646491702238 65 10 DIETERLE CRESCENT REGO PARK NY 11374
Q175 CIP Q 28 P.S. 175 FY11 RESO A FENCING 319571 false -73.86148084756303 40.72646491702238 64 35 102 STREET REGO PARK NY 11374
X175 CIP X 11 P.S. 175 INTERIOR MODERNIZATIONS/WINDOWS 5296000 false -73.78516944174876 40.84381012246547 200 CITY ISLAND AVENUE Bronx NY 10464
K178 CIP K 23 P.S. 178 FLOORS 695000 false -73.9159181765978 40.675074588842676 2163 DEAN STREET Brooklyn NY 11212
Q178 CIP Q 26 P.S. 178 HEATING PLANT UPGRADE/CLIMATE CONTROL/MASONRY 7100000 false -73.7671414999802 40.71722229567246 189 10 RADNOR RD JAMAICA NY 11423
R018 CIP R 31 P.S. 18 BOILER REPLACEMENT 3171000 false -74.11747369098056 40.63603930909672 221 BROADWAY Staten Island NY 10310
X182 CIP X 8 P.S. 182 BRICK MASONRY WATER PENETRATION/WINDOWS 3464027 false -73.85625766017206 40.817936957362555 601 STICKBALL BLVD BRONX NY 10473
Q183 CIP Q 27 P.S. 183 MSNRY/SFTY/WINDOW/LIBRARY UPG/HVAC/ROOF/FIRE ALARM 8248000 false -73.82495531523557 40.6183036047276 2 45 BEACH 79 STREET ROCKAWAY BEACH NY 11693
M137 CIP M 1 P.S. 184 (SHUANG WEN @M137) FY11 RESO A PLAYGROUND REDEVELOPMENT 230000 false -73.98042410080346 40.71217484702834 327 CHERRY ST New York NY 10002
M137 CIP M 1 P.S. 184 (SHUANG WEN @M137) SWB-HAZARDOUS VIOLATION/ROOFS 979000 false -73.98042410080346 40.71217484702834 327 CHERRY ST New York NY 10002
Q186 CIP Q 26 P.S. 186 ACCESSIBILITY/FIRE ALARM SYSTEM/ELECTRICAL SYSTEMS 4577000 false -73.72415699894628 40.73704138495202 252 12 72 AVENUE BELLEROSE NY 11426
Q186 CIP Q 26 P.S. 186 FLOOD ELIMINATION 968000 false -73.72415699894628 40.73704138495202 252 12 72 AVENUE BELLEROSE NY 11426
K188 CIP K 21 P.S. 188 RESO A GYM ADDITION/FY10 RESO A PLAYGROUND 7879007 false -74.00012292790208 40.57720405091032 3314 NEPTUNE AVENUE Brooklyn NY 11224
M188 CIP M 1 P.S. 188 ACCESSIBILITY 6422000 false -73.97792876586212 40.719709960041634 442 HOUSTON STREET New York NY 10002
M188 CIP M 1 P.S. 188 EXTERIOR MASONRY/ROOFS/PARAPETS/WINDOWS 13457000 false -73.97792876586212 40.719709960041634 442 HOUSTON STREET New York NY 10002
K189 CIP K 17 P.S. 189 LOW-VOLT SYSTEM 840000 false -73.92626797722787 40.66553683638519 1100 NEW YORK AVE Brooklyn NY 11212
Q019 CIP Q 24 P.S. 19 SWB - EXT MASONRY/ROOFS/FLOOD ELIMINATION/PARAPETS 16175000 false -73.85304068857687 40.749678220373596 98 02 ROOSEVELT AVE CORONA NY 11368
R019 CIP R 31 P.S. 19 IP SURVEILLANCE CAMERAS 1270000 false -74.127115288525 40.631189624083056 780 POST AVENUE Staten Island NY 10310
K190 CIP K 19 P.S. 190 PARAPETS/ROOFS/EXT MASONRY 6720000 false -73.89448660618348 40.66233878188243 590 SHEFFIELD AVENUE Brooklyn NY 11207
K191 CIP K 17 P.S. 191 SAFETY SYSTEMS 345900 false -73.92433266937152 40.671984269991356 1600 PARK PLACE Brooklyn NY 11233
X198 CIP X 12 P.S. 198 PLANYC BOILER CONVRSN/PLANYC CLIMATE CTRL 3794000 false -73.90058806585479 40.82868626889099 1180 TINTON AVENUE Bronx NY 10456
K199 CIP K 21 P.S. 199 FY11 RESO A LIBRARY 369000 false -73.96308897272426 40.61673348809886 1100 ELM AVENUE Brooklyn NY 11230
R020 CIP R 31 P.S. 20 EXT MASONRY/ROOFS/WINDOWS 3285000 false -74.13295576709373 40.63651173103697 161 PARK AVENUE Staten Island NY 10302
X020 CIP X 10 P.S. 20 ROOFS 1470000 false -73.87958395897564 40.869529034465444 3020 WEBSTER AVENUE BRONX NY 10467
K203 CIP K 22 P.S. 203 EXT MASONRY/ROOFS/PARAPETS/FLOOD ELMNTN 5668000 false -73.92773224974349 40.61636866748006 5101 AVENUE Brooklyn NY 11234
Q206 CIP Q 28 P.S. 206 FLOOD ELIMINATION 283000 false -73.86148084756303 40.72646491702238 61 02 98TH STREET REGO PARK NY 11374
M206 CIP M 4 P.S. 206 (TANDEM PS 112) EXT MASONRY/PARAPETS/FLD ELIMINATION/ROOFS/WALKWAY 5822870 false -73.93112623193574 40.79754733338499 508 120TH STREET New York NY 10035
R021 CIP R 31 P.S. 21 FLOORS 418000 false -74.14676832354822 40.63194814504947 168 HOOKER PLACE Staten Island NY 10303
X021 CIP X 11 P.S. 21 PARAPETS/EXT MASONRY/FLOOD ELIMINATION/ROOFS 5259000 false -73.86044891659131 40.88782430615607 715 225 STREET Bronx NY 10466
K214 CIP K 19 P.S. 214 EXT MASONRY/PARAPETS/FLOOD/WINDOWS/ROOFS 7654000 false -73.8631601400929 40.67649228343164 2944 PITKIN AVENUE Brooklyn NY 11208
Q215 CIP Q 27 P.S. 215 FY11 RESO A SCIENCE LAB UPGRADES 260000 false -73.75832418340367 40.59915376512268 535 BRIAR PLACE FAR ROCKAWAY NY 11691
K219 CIP K 18 P.S. 219 EXT MASONRY/PARAPETS/ROOFS 3079000 false -73.92291949545782 40.65925656671725 1060 CLARKSON AVENUE Brooklyn NY 11212
Q022 CIP Q 25 P.S. 22 FY10 RESO A NEW PLAYGROUND 180000 false -73.82147854789662 40.7512997969481 153 01 SANFORD AVENUE FLUSHING NY 11355
R022 CIP R 31 P.S. 22 LIBRARY UPGRADE 340000 false -74.15109445915424 40.62530363633885 1860 FOREST AVENUE Staten Island NY 10303
K225 CIP K 21 P.S. 225 ACCESSIBILITY/FIRE ALARM/ELECTRICAL SYSTEMS 4105450 false -73.95643350547934 40.5797910944251 1075 OCEAN VIEW AVENUE Brooklyn NY 11235
Q229 CIP Q 24 P.S. 229 SWB - MASONRY/ROOFS 3633000 false -73.9048471440804 40.74519376448069 67 25 51 ROAD WOODSIDE NY 11377
X229 CIP X 9 P.S. 229 ELEVATORS & ESCALATORS 1327150 false -73.92150462714196 40.85261854069672 275 HARLEM RIVER PARK BR Bronx NY 10453
X229 CIP X 9 P.S. 229 PLANYC BOILER/PLANYC CLIMATE CTRL 2910000 false -73.92150462714196 40.85261854069672 275 HARLEM RIVER PARK BR Bronx NY 10453
K230 CIP K 15 P.S. 230 ACCESSIBILITY 4392000 false -73.98088211473515 40.64501828504539 1 ALBEMARLE ROAD Brooklyn NY 11210
Q232 CIP Q 27 P.S. 232 FY11 RESO A SCIENCE LAB UPGRADES 384000 false -73.84496263981396 40.65817022817356 153 23 83 STREET HOWARD BEACH NY 11414
K236 CIP K 22 P.S. 236 EXT MASONRY/FLOOD ELIMINATION 1054000 false -73.92773224974349 40.61636866748006 6302 AVENUE Brooklyn NY 11234
K249 CIP K 17 P.S. 249 EXT MASONRY/ROOFS/PARAPETS 4474000 false -73.96609617601914 40.649842155595174 18 MARLBOROUGH ROAD Brooklyn NY 11226
K249 CIP K 17 P.S. 249 FY11 RESO A AUDITORIUM UPGRADE 198000 false -73.96609617601914 40.649842155595174 18 MARLBOROUGH ROAD Brooklyn NY 11226
K253 CIP K 21 P.S. 253 BOILER PLANT/CLIMATE CONTROL 4282800 false -73.96219337408164 40.579594157400855 601 OCEAN VIEW AVENUE Brooklyn NY 11235
Q816 CIP Q 27 P.S. 256 ANNEX WINDOWS/EXT MASONRY 5282000 false -73.85454217391299 40.576996863641924 445 BEACH 135 STREET QUEENS NY 11694
K026 CIP K 16 P.S. 26 PLANYC BOILER/PLANYC CLIMATE CTRL 3960000 false -73.93167037460694 40.69211086975316 1010 LAFAYETTE AVENUE Brooklyn NY 11221
Q026 CIP Q 26 P.S. 26 ELECTRICAL SYSTEM 594999 false -73.79462153515567 40.73987184371066 195 02 69 AVENUE FLUSHING NY 11365
K262 CIP K 16 P.S. 262 NEW SCIENCE DEMONSTRATION ROOM 534000 false -73.93085733477353 40.68321860795158 500 MACON STREET Brooklyn NY 11233
K273 CIP K 19 P.S. 273 EXT MASONRY/ROOFS/PARAPETS 5335000 false -73.87935692616207 40.65796581134507 923 JEROME STREET Brooklyn NY 11207
X027 CIP X 7 P.S. 277 (@ X027) SWB-ROOF/SWB-EXT MASONRY/WINDOWS/PARAPETS/ HEATING 15843000 false -73.91337206062776 40.813641430845045 519 ST ANNS AVENUE Bronx NY 10451
X279 CIP X 10 P.S. 279 FIRE ALARM UPGRADE 2998000 false -73.90550751626725 40.85444390420279 2100 WALTON AVE BRONX NY 10453
X028 CIP X 9 P.S. 28 EXTERIOR MASONRY/PARAPETS/FLOOD ELIMINATION 5016000 false -73.90357863607737 40.84796917302349 1861 ANTHONY AVENUE Bronx NY 10456
K284 CIP K 23 P.S. 284 SWB-PARAPET-MASONRY/EXTERIOR MASONRY 5680000 false -73.90818838446248 40.66735004908563 213 OSBORN STREET Brooklyn NY 11212
K289 CIP K 17 P.S. 289 WINDOW/CAFE MULTIPURPOSE RM UPG/MASONRY/PARAPET/PA 4440000 false -73.94240595654854 40.67477355898667 900 ST MARKS AVENUE Brooklyn NY 11213
R029 CIP R 31 P.S. 29 PARAPETS/EXT MASONRY/ROOFS 3826000 false -74.11613224214713 40.61361168930647 1581 VICTORY BLVD Staten Island NY 10314
K003 CIP K 13 P.S. 3 PARAPETS/EXT MASONRY/ROOF/PLAYGROUND REDEVELOPMENT 4820800 false -73.9554933572393 40.68262499957862 50 JEFFERSON AVENUE Brooklyn NY 11216
M003 CIP M 2 P.S. 3 FLOORS/INTERIOR SPACES 3824000 false -74.00641883360943 40.73261607852907 490 HUDSON STREET New York NY 10014
R003 CIP R 31 P.S. 3 LIGHTING FIXTURES 934104 false -74.21279962614892 40.52665926345466 80 GOFF AVENUE Staten Island NY 10309
K306 CIP K 19 P.S. 306 PLAYGROUND REDEVELOPMENT 1071501 false -73.88669548652338 40.65614802525013 970 VERMONT STREET Brooklyn NY 11207
K308 CIP K 16 P.S. 308 PAVED AREA-BLACKTOP & TCU 437000 false -73.93578222590314 40.6886393472372 616 QUINCY STREET Brooklyn NY 11221
X122 CIP X 10 P.S. 310 (@ X122) FY10 RESO A AUDITORIUM UPG 205000 false -73.90565533914132 40.873019134707036 260 KINGSBRIDGE RD Bronx NY 10463
K316 CIP K 17 P.S. 316 HOT WATER HEATER 375000 false -73.96025809844292 40.67448517044413 750 CLASSON AVENUE Brooklyn NY 11238
K032 CIP K 15 P.S. 32 FY11 RESO A LIBRARY UPGRADE 357960 false -73.99193273420018 40.680429275762485 317 HOYT STREET Brooklyn NY 11231
X032 CIP X 10 P.S. 32 VINYL FLR/BOILER RM/CLIMATE CTRL/HEAT PLANT 15839000 false -73.88593877891165 40.85208555646217 690 183 STREET Bronx NY 10458
K329 CIP K 21 P.S. 329 WINDOWS/ROOFS 4659000 false -73.99625853857127 40.5746069203897 2929 30 STREET Brooklyn NY 11212
X033 CIP X 10 P.S. 33 GUTTERS, DOWNSPOUTS & DRAINGAGE/FLOOD/EXT MASONRY 2965000 false -73.90165549892143 40.86194912850306 2424 JEROME AVENUE Bronx NY 10468
K034 CIP K 14 P.S. 34 ROOFS 1297000 false -73.94966946764082 40.72614326106391 131 NORMAN AVENUE Brooklyn NY 11222
Q034 CIP Q 29 P.S. 34 PLAYGROUND & TCU REMOVAL 1375500 false -73.74193729726841 40.721396964798146 104 12 SPRINGFIELD BLVD QUEENS VILLAGE NY 11428
M036 CIP M 5 P.S. 36 REINFORCE SUPPRT ELEMT/MASONRY/FLOOD/PARAPET/ ROOF 7179000 false -73.95760614504678 40.81034589186436 123 MORNINGSIDE DRIVE New York NY 10027
R036 CIP R 31 P.S. 36 PARAPETS 617000 false -74.18245006610681 40.54294395216458 255 IONIA AVENUE Staten Island NY 10312
Q037 CIP Q 29 P.S. 37 FLOOD ELMNTN 4627000 false -73.77530690169215 40.6769452621142 179 37 137 AVENUE JAMAICA NY 11434
K370 CIP K 21 P.S. 370 PLAYGROUND REDEVELOPMENT 2587000 false -73.96958337858405 40.577497294548174 3000 1 STREET Brooklyn NY 11224
K370 CIP K 21 P.S. 370 WINDOWS/FLOOD ELIMNTN/MASONRY/ROOFS/PARAPETS 6920000 false -73.96958337858405 40.577497294548174 3000 1 STREET Brooklyn NY 11224
R040 CIP R 31 P.S. 373 (SP ED) @R040 ROOFS/PARAPETS 824000 false -74.09531252948968 40.64071111953775 91 HENDERSON AVENUE Staten Island NY 10301
K384 CIP K 32 P.S. 384 LL 41/16 COMPLIANCE 275000 false -73.90500308262318 40.69009686200851 242 COOPER STREET Brooklyn NY 11221
R004 CIP R 31 P.S. 4 FY09 RESO A TECHNOLOGY 90290.18
Q040 CIP Q 28 P.S. 40 CEC REQUEST-TOILETS STUDENTS 889000
Q040 CIP Q 28 P.S. 40 EXTERIOR MASONRY/PARAPETS 2520000
Q040 CIP Q 28 P.S. 40 PLAYGROUND REDEVELOPMENT 1424537
M041 CIP M 2 P.S. 41 SWB-EXTERIOR MASONRY/WINDOWS/AUD. CEILING/PARAPETS 3447868 false -73.99904466974961 40.735686525332646 116 11 STREET New York NY 10011
Q041 CIP Q 26 P.S. 41 MASONRY SUPPORT REPAIR/PARAPETS 2564500 false -73.77481079967868 40.773606900238235 214 43 35 AVENUE BAYSIDE NY 11261
R041 CIP R 31 P.S. 41 FY10 RESO A PA SYSTEMS 448000 false -74.10928336025026 40.574024158045525 216 CLAWSON STREET Staten Island NY 10306
R045 CIP R 31 P.S. 45 TOILETS STUDENTS 999999 false -74.10718417740732 40.62863428073003 58 LAWRENCE AVENUE Staten Island NY 10310
R045 CIP R 31 P.S. 45 WATER PENETRATION 579900 false -74.10718417740732 40.62863428073003 58 LAWRENCE AVENUE Staten Island NY 10310
K046 CIP K 13 P.S. 46 SCIENCE DEMO ROOM 376999 false -73.9711875089949 40.694634881525445 100 CLERMONT AVENUE Brooklyn NY 11205
M046 CIP M 5 P.S. 46 SCIENCE DEMO LAB 512000
Q046 CIP Q 26 P.S. 46 CORRIDOR SPACES 290000 false -73.75790275560763 40.745924680379744 64 45 218TH STREET QUEENS NY 11364
K048 CIP K 20 P.S. 48 EXT MASONRY/PARAPETS/ROOFS 5315000
Q050 CIP Q 28 P.S. 50 SWB EXT MASONRY/PARAPETS/ROOFS 1900000 false -73.80979665579099 40.70119264912154 143 26 101 AVENUE JAMAICA NY 11435
R050 CIP R 31 P.S. 50 BOILER REPLACEMENT/CLIMATE CONTROL 3330000 false -74.12474473444865 40.561729222740695 200 ADELAIDE AVENUE Staten Island NY 10306
X050 CIP X 12 P.S. 50 FLOOD ELIMINATION 818000 false -73.88769223705626 40.83380386816254 1550 VYSE AVENUE Bronx NY 10460
M050 CIP M 4 P.S. 50 (UDC & ECF) PLANYC BOILER CONVERSION/PLANYC CLIMATE CONTROL 3174000 false -73.94222449721103 40.78556522081211 433 100 STREET New York NY 10029
Q051 CIP Q 27 P.S. 51 (ECC) EXTERIOR MASONRY 1023000 false -73.84031024991805 40.69637041236467 87 45 117TH STREET QUEENS NY 11418
Q052 CIP Q 29 P.S. 52 SWB EXT MASONRY 2700000 false -73.77530690169215 40.6769452621142 178 37 146 TERRACE SPRINGFIELD GARDENS NY 11434
R053 CIP R 31 P.S. 53 FENCING/PAVED AREAS-CONCRETE 675000 false -74.13710643405284 40.55253899268856 330 DURANT AVENUE Staten Island NY 10308
R054 CIP R 31 P.S. 54 PARAPETS/ROOFS/WINDOWS/EXT MASONRY 5847000 false -74.13792964309168 40.60321556338597 1060 WILLOWBROOK RD Staten Island NY 10314
Q055 CIP Q 28 P.S. 55 SWB-BULGING MASONRY/PARAPETS 4795000 false -73.82288833053201 40.68871379040917 131 10 97 AVENUE RICHMOND HILL NY 11419
R055 CIP R 31 P.S. 55 ROOFS/CEC REQUEST-MASONRY/FLOOD ELMNTN/PARAPETS 1890000 false -74.16332659953605 40.53686781464157 54 OSBORNE STREET Staten Island NY 10312
X055 CIP X 9 P.S. 55 EXTERIOR MASONRY/PARAPETS 1285000 false -73.90461113077222 40.836276563944345 450 SAINT PAUL'S PLACE Bronx NY 10456
K056 CIP K 13 P.S. 56 PLANYC CLIMATE/BOILER CONTROL 5240000 false -73.960643681102 40.68503684353989 170 GATES AVENUE Brooklyn NY 11238
R057 CIP R 31 P.S. 57 PLANYC PLAYGROUND 613715.9 false -74.08283106498078 40.61136129612238 140 PALMA DRIVE Staten Island NY 10304
K006 CIP K 17 P.S. 6 (PS 600B) BLDG MANAGEMENT SYSTEM 2269000
K006 CIP K 17 P.S. 6 (PS 600B) EXT MASONRY/ROOFS 773000
X060 CIP X 8 P.S. 60 FLOOD/EXT MASONRY/CEC REQUEST-PARAPET/ROOFS/WINDOW 14619000 false -73.89313106784448 40.82552621616202 888 REV J A POLITE AVE Bronx NY 10459
X061 CIP X 12 P.S. 61 FIRE ALARM 349119 false -73.89295310872916 40.836569959473785 1550 CROTONA PARK Bronx NY 10460
X061 CIP X 12 P.S. 61 IP SURVEILLANCE CAMERAS 1528000 false -73.89295310872916 40.836569959473785 1550 CROTONA PARK Bronx NY 10460
X064 CIP X 9 P.S. 64 BATHROOMS 4TH & 5TH FLR 508499 false -73.91558081775857 40.8401115358764 1425 WALTON AVENUE Bronx NY 10452
Q066 CIP Q 27 P.S. 66 FLOOD ELIMINATION/EXT MASONRY/PARAPETS 1110000 false -73.84031024991805 40.69637041236467 85 11 102 STREET RICHMOND HILL NY 11418
M066 CIP M 2 P.S. 66 (RICHARD R GREEN) CAFE MULTIPURPOSE ROOM 482000 false -74.02858656018857 40.62102637693336 421 88 STREET New York NY 10028
X068 CIP X 11 P.S. 68 ELEVATORS & ESCALATORS 688000 false -73.83837769297637 40.89141479468151 4011 MONTICELLO AVENUE Bronx NY 10466
R069 CIP R 31 P.S. 69 FENCING 234000 false -74.15650379993006 40.59169714382341 144 KEATING PLACE Staten Island NY 10314
X007 CIP X 10 P.S. 7 ROOFS/EXT MASONRY/PARAPETS 4700000 false -73.90547390792568 40.881013909978904 3201 KINGSBRIDGE AVENUE Bronx NY 10463
Q071 CIP Q 24 P.S. 71 FLOOD ELIMINATION 408990 false -73.88334858436963 40.70122489161548 62 85 FOREST AVENUE RIDGEWOOD NY 11385
X072 CIP X 8 P.S. 72 BATHROOM 668000 false -73.81850425419442 40.822539080023574 2951 DEWEY AVENUE Bronx NY 10465
K722 CIP K 21 P.S. 721 OTC TILTED FIELD LIGHTING 1396800 false -73.97331147204676 40.596939623165156 64 AVENUE Brooklyn NY 11223
M641 CIP M 2 P.S. 721 OTC SP ED FLOOD ELIMINATION 1897000 false -74.00542114697957 40.72862785368122 250 HOUSTON ST MANHATTAN NY 10014
K073 CIP K 23 P.S. 73 SWB EXT MSNRY/SWB PARAPETS/SWB FLOOD/ROOFS 3084000 false -73.91089377023927 40.68032732647815 251 MCDOUGAL STREET Brooklyn NY 11233
X075 CIP X 8 P.S. 75 ROOFS/EXT MASONRY 2549000 false -73.88942113898915 40.822818392634325 984 FAILE STREET Bronx NY 10459
X155 CIP X 7 P.S. 754 (@X155) CAFE/MULTIPURPOSE RM UPGRADE/FLOOD ELIMINATION 1230000 false -73.90975689502312 40.81117582303449 470 JACKSON AVENUE BRONX NY 10455
X155 CIP X 7 P.S. 754 (@X155) FY11 REOS A LIBRARY UPGRADE 299155 false -73.90975689502312 40.81117582303449 470 JACKSON AVENUE BRONX NY 10455
Q076 CIP Q 30 P.S. 76 EXTERIOR MASONRY/PARAPETS 2284875 false -73.91327185810974 40.76286893025696 36 36 10 STREET QUEENS NY 11103
X076 CIP X 11 P.S. 76 MASONRY/PARAPETS/FLOOD ELMNTN/ROOFS 4042000 false -73.8614028579785 40.86957454109854 900 ADEE AVENUE Bronx NY 10469
X078 CIP X 11 P.S. 78 AUDITORIUM UPGRADE/STUDENT TOILETS 715000 false -73.8513380848076 40.87847023359842 1400 NEEDHAM AVENUE Bronx NY 10469
Q079 CIP Q 25 P.S. 79 ELEC SYSTEMS 258100 false -73.81123206101074 40.78628404147537 147 27 15 DRIVE WHITESTONE NY 11357
R008 CIP R 31 P.S. 8 ELEC SYSTEM 790000 false -74.1517569152093 40.54764073027023 112 LINDENWOOD ROAD Staten Island NY 10308
R880 CIP R 31 P.S. 80 (PETRIDES BLDG B) WINDOWS/EXT MASONRY 3228000
Q081 CIP Q 24 P.S. 81 FLOOD ELIM/STRUCTURAL:FLOOR SYS/EXT MASONRY 1274800 false -73.91225035614077 40.70373293561221 559 CYPRESS AVENUE RIDGEWOOD NY 11237
X081 CIP X 10 P.S. 81 FLOOD ELIMINATION 474000 false -73.90520839316682 40.903559546831026 5550 RIVERDALE AVENUE Bronx NY 10471
Q848 CIP Q 24 P.S. 81 ANNEX (@Q848) FLOOD ELIMINATION/EXT MASONRY 2390270
Q811 CIP Q 26 P.S. 811 (OL 187 - CMCH) LL 41/16 COMPLIANCE 954000 false -73.73430017711144 40.759074216601846 61 25 MARATHON PKWY QUEENS NY 11362
Q811 CIP Q 26 P.S. 811 (OL 187 - CMCH) LOW VOLTAGE 560000 false -73.73430017711144 40.759074216601846 61 25 MARATHON PKWY QUEENS NY 11362
M841 CIP M 3 P.S. 811(@ M841) WORK REQUIRED TO OBTAIN C OF O 1880750 false -73.96653900057436 40.78362556816552 466 END AVENUE NEW YORK NY 10024
Q082 CIP Q 28 P.S. 82 WATER PENETRATION 1120000 false -73.80979665579099 40.70119264912154 88 02 144 STREET QUEENS NY 11435
X083 CIP X 11 P.S. 83 ACCESSIBILITY 3377000 false -73.85933122663833 40.849332468676785 950 RHINELANDER AVENUE Bronx NY 10462
Q085 CIP Q 30 P.S. 85 FLOOD ELMNTN/ROOFS/EXT MASONRY/PARAPETS 3111000 false -73.90960650023976 40.780092072491186 23 70 31 STREET QUEENS NY 11105
X085 CIP X 10 P.S. 85 RETAINING WALL 1596000 false -73.89472052099663 40.859331900138066 2400 MARION AVENUE Bronx NY 10458
K086 CIP K 32 P.S. 86 FLOOD ELMNTN/EXT MASONRY 4269000 false -73.91749723727719 40.7007452458598 220 IRVING AVENUE Brooklyn NY 11237
X086 CIP X 10 P.S. 86 ELEVATORS & ESCALATORS 747400 false -73.89880422371779 40.869715575827065 2756 RESERVOIR AVENUE Bronx NY 10468
K009 CIP K 13 P.S. 9 PAVED AREA - BLACKTOP 974000
X009 CIP X 10 P.S. 9 (OLD 115) ACCESSIBILITY 6177000 false -73.89936166242526 40.8571875830873 230 183 STREET Bronx NY 10458
Q090 CIP Q 27 P.S. 90 ELEC SYSTEMS 778000 false -73.84031024991805 40.69637041236467 86 50 109 STREET RICHMOND HILL NY 11418
Q090 CIP Q 27 P.S. 90 SWB - EMERGENCY MASONRY REPAIRS/PARAPETS 3769000 false -73.84031024991805 40.69637041236467 86 50 109 STREET RICHMOND HILL NY 11418
X090 CIP X 9 P.S. 90 EXTERIOR MASONRY/RETAINING WALLS 1857000 false -73.91794566527413 40.83197402670032 1116 SHERIDAN AVENUE Bronx NY 10456
K093 CIP K 13 P.S. 93 FLOORS 1748375 false -73.94682098403624 40.679147761017056 31 NEW YORK AVENUE Brooklyn NY 11216
K094 CIP K 15 P.S. 94 PLANYC PLAYGROUND 264500 false -74.0082060957207 40.64372817395559 5010 6TH AVENUE Brooklyn NY 11220
K095 CIP K 21 P.S. 95 EXT MASONRY/WINDOWS 3373000 false -73.97512954825021 40.595683557953876 345 VAN SICKLEN STREET Brooklyn NY 11223
M271 CIP M 2 P.S./I.S. 217 ROOSEVELT ISLAND ROOFS/EXT MASONRY/WINDOWS/PARAPETS 8444000 false -73.94703392787746 40.76494453865442 645 MAIN STREET New York NY 10044
M495 CIP M 4 PARK EAST ALT HS FY10 RESO A SCIENCE LAB 759354 false -73.94403228106489 40.79161072055837 230 34 EAST 105 STREET New York NY 10029
M495 CIP M 4 PARK EAST ALT HS WATER DAMAGE & MASONRY/ROOF/PARAPETS/WINDOWS 2887000 false -73.94403228106489 40.79161072055837 230 34 EAST 105 STREET New York NY 10029
Q102 CAP Q 24 PS 102 Addition Addition 56222000 false -73.87835115518163 40.73871040256307 55 24 Van Horn St Elmhurst NY 11373
Q013 CAP Q 24 PS 13 Addition Addition 41250000 false -73.87835115518163 40.73871040256307 55 01 94th St Elmhurst NY 11373
M130 CIP M 2 PS 130 SWB-WINDOWS 1327000 false -73.99859121725036 40.7186139475248 143 BAXTER STREET New York NY 10013
K317 CAP K 13 PS 133 New 66224000 false -73.98070466529857 40.68047819552629 610 Baltic St Brooklyn NY 11217
Q143 CIP Q 24 PS 143 FY10 RESO A PA SYSTEM 189000 false -73.85304068857687 40.749678220373596 34 74 113 STREET CORONA NY 11368
K160 CAP K 20 PS 160 Annex Addition 38772000 false -73.99911127943953 40.637367859169615 5105 Fort Hamilton Pkwy Brooklyn NY 11219
X136 CIP X 12 PS 186 COMPUTER LAB FLOOD ELIMINATION/EXTERIOR RAMPS & CANOPIES 968700 false -73.89748338090764 40.8318681052202 750 JENNINGS STREET Bronx NY 10459
Q196 CAP Q 28 PS 196 Addition Addition 29800000 false -73.84628429608335 40.720707263029794 71 25 113th St Forest Hills NY 11375
K264 CAP K 20 PS 264 New 39814903 false -74.02907223284222 40.62112765715576 8818 4th Ave Brooklyn NY 11209
Q280 CAP Q 30 PS 280 Lease 6230000 false -73.88361254528269 40.75163073936716 34 20 94th St Jackson Heights NY 11372
Q280 CAP Q 30 PS 280 Lease 7250000 false -73.88361254528269 40.75163073936716 34 20 94th St Jackson Heights NY 11372
Q029 CAP Q 25 PS 29 Addition Addition 20180000 false -73.84181070040347 40.7849280967543 125 10 23rd Ave College Point NY 11356
Q290 CIP Q 24 PS 290 DEMOLITION FOR PS 290 3370000 false -73.88334858436963 40.70122489161548 55 20 METROPOLITAN AVE RIDGEWOOD NY 11385
X292 CAP X 11 PS 292 New 31927000 false -73.86385184249058 40.85441144971648 800 Lydig Ave Bronx NY 10462
K310 CAP K 20 PS 310 New 26400000 false -74.00762713591367 40.632432204151364 942 62nd St Brooklyn NY 11219
K331 CAP K 20 PS 331 New 51133300 false -74.02392108137985 40.633713521609366 7002 4th Ave Brooklyn NY 11209
Q198 CIP Q 27 PS 333 @ 198 SCIENCE DEMO ROOM UPGRADE 670000 false -73.79540208463845 40.593133885620375 3 65 BEACH 56 STREET QUEENS NY 11692
Q042 CAP Q 27 PS 42 Addition Addition 43065000 false -73.79529882397365 40.59475372321819 488 Beach 66th St Arverne NY 11692
Q043 CIP Q 27 PS 43 FIRE ALARM SYSTEM 1982000 false -73.76182654029463 40.594515128003 160 BEACH 29TH STREET ROCKAWAY NY 11691
M338 CAP M 2 PS 51 New 54730000 false -73.99547864190042 40.761366217679694 525 44th St New York NY 10036
R071 CAP R 31 PS 71 New 53450000 false -74.09118595249046 40.60412964758937 1050 Targee St Staten Island NY 10304
K008 CAP K 13 PS 8 Addition Addition 21230000 false -73.9932378538064 40.700668802148385 37 Hicks St Brooklyn NY 11201
M916 CAP M 5 PS 916 Lease 0 false -73.95327141286555 40.81245030541294 168 Morningside Ave New York NY 10027
X177 CAP X 10 PS/IS 177 New 48888000 false -73.8752514350975 40.87277450072955 3177 Webster Ave Bronx NY 10467
Q277 CAP Q 28 PS/IS 277 New 47135000 false -73.79282099978928 40.71311535449007 153 27 88th Ave Jamaica NY 11432
M281 CAP M 2 PS/IS 281 New 47580000 false -73.97273509303172 40.74436150165521 425 35th St New York NY 10016
Q312 CAP Q 30 PS/IS 312 New 47820000 false -73.93866902925225 40.74570244980828 46 08 5th St Long Island City NY 11101
X784 CAP X 11 PS/IS 784 New 0 false -73.84367515955307 40.85710649548991 1500 Pelham Pkwy Bronx NY 10461
K990 CAP K 15 Pave Charter School New 25933333 false -74.00338737261256 40.67592711246962 732 Henry St Brooklyn NY 11231
Q475 CIP Q 27 RICHMOND HILL HS SWB - EXT MASONRY/WINDOWS/ROOFS 9333000 false -73.84031024991805 40.69637041236467 89 30 114 STREET QUEENS NY 11418
K655 CIP K 15 SARAH J HALE VOCATIONAL HS ACCESSIBILITY/SAFETY 2450000 false -73.98061564042008 40.68371105568558 345 DEAN STREET Brooklyn NY 11217
K218 CIP K 19 SCH FOR CLASSICS:ACAD OF THINK NEW SCIENCE LAB SUITE 845000 false -73.8742292684109 40.67070199017694 370 FOUNTAIN AVENUE Brooklyn NY 11208
M660 CIP M 2 SCHOOL OF THE FUTURE @MD BACON FLOOD ELIMINATION 618000 false -73.98552809234425 40.73900208799275 127 22 STREET NEW YORK NY 10010
Q751 CIP Q 30 SCHOOL SAFETY PARKING LOT SCHOOL SAFETY PARKING LOT 2648000 false -73.93866902925225 40.74570244980828 43 30 DUTCH KILLS STREET LONG ISLAND CITY NY 11101
M445 CIP M 2 SEWARD PARK HS CAFETERIA MULTIPURPOSE RM UPG 929000 false -73.98959502962896 40.716852373698316 350 GRAND STREET New York NY 10002
K515 CIP K 18 SOUTH SHORE HS ROOFS/EXT MASONRY/PARAPETS 18887000 false -73.91781691770764 40.63268510415105 6565 FLATLANDS AVENUE BROOKLYN NY 11236
M477 CIP M 2 STUYVESANT HS (NEW) EXT MASONRY/ROOFS 7752000
X240 CAP X 78 Settlement Housing PS/IS/HS New 83300000 false -73.91619367568833 40.84236125885491 1501 Jerome Ave Bronx NY 10452
X988 CAP X 78 Suspension Center - Bronx Lease 7335500 false -73.89020247936504 40.81655388322442 1231 Lafayette Ave Bronx NY 10474
X410 CIP X 9 TAFT HS PLANYC BOILER CONVERSION/PLANYC CLIMATE CTRL 10174000 false -73.9108816444482 40.84038797720987 240 172 STREET BRONX NY 10457
K485 CIP K 20 TELECOM ARTS & TECHNOLOGY H.S. EXT MASONRY 4138000 false -74.02385245520922 40.63726462862678 350 67TH ST Brooklyn NY 11220
X435 CIP X 10 THEODORE ROOSEVELT H.S. FLOORS 1593000 false -73.88817875264016 40.85990614640288 500 FORDHAM ROAD Bronx NY 10458
X435 CIP X 10 THEODORE ROOSEVELT H.S. SWB - COPPER SIDING 1500000 false -73.88817875264016 40.85990614640288 500 FORDHAM ROAD Bronx NY 10458
R455 CIP R 31 TOTTENVILLE H.S. FY10 RESO A AF REPLACEMENT 1452882 false -74.19217697672369 40.52826198723337 100 LUTEN AVENUE Staten Island NY 10312
R455 CIP R 31 TOTTENVILLE HS WINDOWS 7960000 false -74.19217697672369 40.52826198723337 100 LUTEN AVENUE Staten Island NY 10312
M971 CAP M 2 The Spruce Street Educational New 34146385.86 false -74.00596371272646 40.71174136432668 12 Spruce St New York NY 10038
M445 CIP M 2 URBAN ASSEMBLY ACADEMY GIRLS SHOWER ROOM 1014300 false -73.98959502962896 40.716852373698316 350 GRAND STREET New York NY 10002
R460 CIP R 31 WAGNER HS FY06 RESO A ATHLETIC FIELD 5799000 false -74.12366587081469 40.59771088831585 1200 MANOR ROAD Staten Island NY 10314
K805 CIP K 13 WATER'S EDGE EDUCATIONAL COMPL ELEVATOR UPGRADE 764398 false -73.98496543482732 40.69721149151847 49 FLATBUSH AVE EXTENSION BROOKLYN NY 11201
Q680 CIP Q 28 YOUNG WOMENS' LEADERSHIP SCHOO IP SURVEILLANCE CAMERAS 1047000 false -73.7875740339145 40.698104881734935 150 91 87TH ROAD JAMAICA NY 11433
1 buildingid consttype boro geo_dist name projdesc award location_1/needs_recoding location_1/longitude location_1/latitude location_1/human_address/address location_1/human_address/city location_1/human_address/state location_1/human_address/zip
2 M092 CIP M 5 ACADEMY OF COLLABORATIVE ED EXTERIOR MASONRY/REPAIR WINDOWS 4678000 false -73.94493618207292 40.8149219739981 222 134 STREET New York NY 10030
3 K610 CIP K 14 AUTOMOTIVE TRADES VOC HS FIRE ALARM 402500 false -73.95311779468979 40.72215011764413 50 BEDFORD AVENUE Brooklyn NY 11222
4 K554 CAP K 78 All City Leadership School Lease 29299000 false -73.91312770264774 40.69743439114146 321 Palmetto St Brooklyn NY 11237
5 X095 CAP X 10 Ampark Neighborhood School Addition 48624000 false -73.89107454904517 40.883162755141505 3961 Hillman Ave Bronx NY 10463
6 M488 CAP M 78 Art and Design HS New 0 false -73.96809182217982 40.758630224005685 231 249 E 56th St New York NY 10022
7 Q410 CIP Q 27 BEACH CHANNEL HS SWB-HAZARDOUS MASONRY/PARAPET/ROOF/EXTERIOR DOORS 23480000 false -73.85077700055808 40.57657830564432 100 00 BEACH CHANNEL DRIVE QUEENS NY 11694
8 M971 CIP M 2 BEEKMAN SCHOOL (PROJ#1)PS@M971 BEEKMAN INTERIOR FIT-OUT WORK 24288902.98 false -74.00596371272646 40.71174136432668 12 SPRUCE ST NEW YORK NY 10038
9 Q169 CIP Q 25 BELL ACADEMY@ Q169 SCIENCE LAB UPGRADE 342000 false -73.78226733686807 40.78070133439911 18 25 212 STREET BAYSIDE NY 11360
10 M136 CIP M 5 BREAD AND ROSES HS EXTERIOR MASONRY/ROOFS/SECURITY LIGHTING/PARAPETS 7920000 false -73.94777715277199 40.81720320936426 6 EDGECOMBE AVENUE NEW YORK NY 10030
11 K057 CIP K 16 BRKLYN ACAD. OF GLOBAL FINANCE NEW SCIENCE LAB SUITE 963000 false -73.93365273330902 40.691184878420714 125 STUYVESANT AVENUE Brooklyn NY 11221
12 M282 CIP M 2 BROADWAY EDUCATION CAMPUS LEASE (1ST & 2ND FLOOR) 20500000 false -74.01331914476191 40.70549393646826 26 BROADWAY NEW YORK NY 10004
13 X420 CIP X 12 BRONX COALITION HS (@X420) FY10 RESO A SCHOOL BASED HEALTH CLINIC 648000 false -73.87881047207371 40.831280981918596 1300 BOYNTON AVENUE Bronx NY 10472
14 X475 CIP X 10 BRONX ENGINEERING & TECH ACAD. PAVED AREAS-BLACKTOP 1270000 false -73.91213621128965 40.877210772673564 99 TERRACE VIEW AVENUE Bronx NY 10463
15 X445 CIP X 10 BRONX HS OF SCIENCE SCIENCE LAB UPGRADE 1494999 false -73.88689697376654 40.875578988056745 75 205 STREET Bronx NY 10468
16 K117 CIP K 13 BROOKLYN COMM FY10 RESO A OUT TRACK & MIXED USE 1061000 false -73.95894653911148 40.69261081871296 300 WILLOUGHBY AVENUE Brooklyn NY 11205
17 K515 CIP K 18 BROOKLYN THEATRE ARTS HS FY11 RESO A AUDITORIUM UPGRADE 961142 false -73.91781691770764 40.63268510415105 6565 FLATLANDS AVENUE BROOKLYN NY 11236
18 K480 CIP K 32 BUSHWICK HS OF SOCIAL JUSTICE FY10 RESO A GYM UPGRADE 539000 false -73.91084445466608 40.69697946567666 400 IRVING AVENUE BROOKLYN NY 11237
19 K865 CIP K 32 BUSHWICK LEADERS HS ACAD @K865 REPAIR OF SAGGING FLOORS 3338000 false -73.92824173943163 40.69513370850302 797 BUSHWICK AVENUE Brooklyn NY 11221
20 M282 CAP M 78 Broadway Education Campus (1st Lease 20500000 false -73.99674463976191 40.71350689574933 26 Broadway New York NY 10002
21 Q490 CIP Q 29 CAMPUS MAGNET-ENTREPRENEURSHIP EXTERIOR DOORS 84995.05 false -73.73568329125084 40.694293339066405 207 01 116TH AVENUE CAMBRIA HEIGHTS NY 11411
22 K500 CIP K 18 CANARSIE H.S. LL 41/16 COMPLIANCE 117726.54 false -73.89750860330521 40.64078389170152 1600 ROCKAWAY PKWY BROOKLYN NY 11236
23 M501 CIP M 5 CHOIR ACADEMY OF HARLEM ROOFS/PARAPETS 2871000 false -73.93946681971579 40.80736014272708 2005 MADISON AVENUE NEW YORK NY 10035
24 Q485 CIP Q 24 CLEVELAND HS RETAINING WALLS/EXTERIOR STEPS 5817000 false -73.88334858436963 40.70122489161548 21 27 HIMROD STREET QUEENS NY 11385
25 X440 CIP X 10 CLINTON HS WINDOWS/AREAWAY/PARAPETS/TOWER ROOFS 7290000 false -73.88672516295283 40.88178360066122 100 MOSHOLU PKWY BRONX NY 10468
26 M646 CIP M 2 CO-OP TECHNICAL H.S. PARAPETS/WINDOWS/ROOFS/EXT MASONRY 6292000 false -73.94612486053185 40.78386913950879 321 96 STREET New York NY 10128
27 K804 CIP K 15 COBBLE HILL H.S. FLOOD ELMNTN/EXT MASONRY 2983382 false -73.991150069287 40.684609118080985 347 BALTIC STREET Brooklyn NY 11201
28 M814 CAP M 78 Community Health Academy (CLOT New 43728000 false -73.94178600222767 40.83354081707594 504 158th St New York NY 10032
29 Q801 CIP Q 30 DOE BUREAU OF SUPPLIES ELEVATORS/ELEC SYSTEMS 7342000 false -73.93866902925225 40.74570244980828 44 36 VERNON BLVD QUEENS NY 11101
30 Q297 CAP Q 30 Demolition for IS 297 Demo 746444 false -73.88361254528269 40.75163073936716 74 03 34th Ave Jackson Heights NY 11372
31 M868 CAP M 2 Demolition for IS/HS 868 Demo 2182222 false -73.99224802961538 40.73631370241236 10 15th St New York NY 10003
32 Q290 CAP Q 24 Demolition for PS 290 Demo 3370000 false -73.88334858436963 40.70122489161548 55 20 Metropolitan Ave Ridgewood NY 11385
33 K615 CIP K 19 E NY HS OF TRANSIT TECHNOLOGY FY11 RESO A GYMNASIUM UPGRADE 419000 false -73.876114686314 40.678266696104096 1 WELLS STREET Brooklyn NY 11208
34 M064 CIP M 1 EARTH SCHOOL (@M064) FY09 RESO A GREENROOF 769000 false -73.98162129932635 40.72444152208924 600 6 STREET New York NY 10009
35 M855 CIP M 2 ELEANOR ROOSEVELT HS IP SURVEILLANCE CAMERAS 888000 false -74.02500811267907 40.62997664645282 411 76TH STREET NEW YORK NY 10001
36 X426 CIP X 11 EVANDER CHILDS AF ATHLETIC FIELD LIGHTING 797000 false -73.8621066953495 40.875978648353474 800 GUNHILL ROAD BRONX NY 10467
37 X425 CIP X 11 EVANDER CHILDS H.S. PA SYSTEM/ELECTRICAL UPGRADE 850000 false -73.8621066953495 40.875978648353474 800 GUN HILL ROAD Bronx NY 10467
38 M600 CIP M 2 FASHION INDUSTRIES VOC HS-M FY10 RESO A AUDITORIUM UPGRADE 734100 false -73.99588924404328 40.74508837330147 225 24 STREET New York NY 10011
39 M600 CIP M 2 FASHION INDUSTRIES VOC HS-M SAFETY/PAVEMENT/CONTAINER/ MASONRY/ROOF 5993000 false -73.99588924404328 40.74508837330147 225 24 STREET New York NY 10011
40 Q440 CIP Q 28 FOREST HILLS HS CONCRETE PAVED AREAS 3463000 false -73.84628429608335 40.720707263029794 67 01 110 STREET QUEENS NY 11375
41 Q440 CIP Q 28 FOREST HILLS HS FY11 RESO A LIBRARY UPGRADE 421000 false -73.84628429608335 40.720707263029794 67 01 110 STREET QUEENS NY 11375
42 K033 CIP K 14 FOUNDATIONS ACADEMY SCIENCE LAB UPGRADE 1165500 false -73.94668415925653 40.697149542940295 70 TOMPKINS AVENUE Brooklyn NY 11206
43 Q430 CIP Q 26 FRANCIS LEWIS H.S. FLOOD ELIMINATION/FENCING/PAVED AREA - CONCRETE 2579000 false -73.79462153515567 40.73987184371066 58 20 UTOPIA PKWY QUEENS NY 11365
44 K505 CIP K 20 FRANKLIN D. ROOSEVELT H.S. FY07 RESO A ASTRO TURF FOOTBALL FIELD 2470527 false -73.9817265392885 40.62052678025147 5800 20 AVENUE Brooklyn NY 11204
45 K175 CIP K 23 FREDERICK DOUGLAS ACADEMY PARAPETS/EXT MASONRY/FLOOD ELMNTN 2675000 false -73.91171337843976 40.66578774851303 226 BRISTOL STREET Brooklyn NY 11212
46 K490 CIP K 20 FT HAMILTON HS HEATING PLANT UPGRADE/CLIMATE CTRL 8296000 false -74.03991574863338 40.627991412441524 8301 SHORE ROAD Brooklyn NY 11209
47 M465 CIP M 6 GEORGE WASHINGTON H.S. FLOOD ELIMINATION/PARAPETS 12686000 false -73.92672451121956 40.856389753646916 549 AUDOBON AVENUE New York NY 10040
48 M460 CIP M 2 GRAMERCY ARTS HS - M SCIENCE DEMO ROOM UPGRADE 1059950 false -73.98760494227764 40.735537114027146 40 IRVING PLACE New York NY 10003
49 M625 CIP M 2 GRAPHIC COMMUNICATION ARTS WINDOWS/EXTERIOR MASONRY/PLAZA DECK 12647000 false -73.9905041730044 40.76336102095483 439 49 STREET New York NY 10019
50 M465 CIP M 6 HEALTH CAREERS & SCIENCE FY11 RESO A ELECTRICAL SYSTEM 516000 false -73.92672451121956 40.856389753646916 549 AUDOBON AVENUE New York NY 10040
51 Q585 CAP Q 78 HS 585 New 70250000 false -73.87835115518163 40.73871040256307 54 40 74th St Elmhurst NY 11373
52 X783 CAP X 78 HS 783 New 0 false -73.92662867570321 40.816146910599706 201 144th St Bronx NY 10451
53 Q456 CIP Q 24 HS FOR ARTS & BUS (@ Q456) WINDOWS 837000 false -73.85304068857687 40.749678220373596 105 25 HORACE HARDING EXPRESSWAY QUEENS NY 11368
54 K465 CIP K 17 HS FOR SERVICE & LEARNING FIRE ALARM SYSTEM 2625000 false -73.95845755993555 40.649532936565414 911 FLATBUSH AVENUE Brooklyn NY 11226
55 Q490 CIP Q 29 HUMANITIES & ARTS FY08 RESO A TECHNOLOGY 17555.4 false -73.73568329125084 40.694293339066405 207 01 116TH AVENUE CAMBRIA HEIGHTS NY 11411
56 M908 CAP M 5 Harlem Promise Academy New 60000000 false -73.94715683161196 40.81182512837363 245 129th St New York NY 10027
57 M280 CAP M 5 Harlem Village Academy New 36336432.4 false -73.94391077367071 40.80627609017035 35 124th St New York NY 10027
58 M010 CIP M 5 I.S. 10 FLOOD ELIMINATION 5393000 false -73.93690714053237 40.82438364705368 2581 7TH AVENUE NEW YORK NY 10039
59 K111 CIP K 32 I.S. 111 LL 41/16 COMPLIANCE 370000 false -73.9274722005684 40.70073228077929 35 STARR STREET Brooklyn NY 11221
60 X115 CIP X 10 I.S. 115 (@X115) EXT MASONRY/ROOFS/REINFORCING SUPPORT/PARAPETS 3833000 false -73.9001023348563 40.859718306516946 120 184 STREET Bronx NY 10468
61 K117 CIP K 13 I.S. 117 ELECTRICAL SYSTEMS 990000 false -73.95894653911148 40.69261081871296 300 WILLOUGHBY AVENUE Brooklyn NY 11205
62 Q125 CIP Q 24 I.S. 125 LOW-VOLT ELEC SYSTEMS 980000 false -73.9048471440804 40.74519376448069 46 02 47 AVENUE QUEENS NY 11377
63 M131 CIP M 2 I.S. 131 LL 41/16 COMPLIANCE 139807.64 false -73.99286250634624 40.71645702482035 100 HESTER STREET New York NY 10002
64 X131 CIP X 8 I.S. 131 ROOFS/SAFETY SYSTEM/EXT MASONRY/FLOOD ELIMINATION 6780000 false -73.85977399112697 40.82386302071817 885 BOLTON AVENUE Bronx NY 10473
65 X135 CIP X 11 I.S. 135 EXT MASONRY/WINDOWS/ROOFS 6988000 false -73.86461178363403 40.86208256356063 2441 WALLACE AVENUE Bronx NY 10467
66 X137 CIP X 10 I.S. 137 PLANYC BOILER CONVERSION/PLANYC CLIMATE CTRL 4680000 false -73.89664962860274 40.85466127151118 2225 WEBSTER AVENUE Bronx NY 10457
67 X139 CIP X 7 I.S. 139 EXT MASONRY/PARAPETS/FLOOD ELMNTN/WINDOWS/ROOFS 13447000 false -73.91782345430987 40.81004862442692 345 BROOK AVENUE Bronx NY 10454
68 K014 CIP K 22 I.S. 14 PAVED AREA - BLACKTOP 659572.05
69 X142 CIP X 11 I.S. 142 FY09 RESO A SCIENCE LAB 735800 false -73.84075720750138 40.88554553526394 3750 BAYCHESTER AVENUE Bronx NY 10466
70 M143 CIP M 6 I.S. 143 ROOFS/FLOOD ELMNTN/EXT MASONRY 4237000 false -73.9320770216135 40.84941102208005 511 182 STREET New York NY 10033
71 X144 CIP X 11 I.S. 144 ROOFS/EXT MASONRY/PARAPETS/FLOOD ELIMINATION 4891000 false -73.83609949442072 40.863858665108886 2545 GUNTHER AVENUE BRONX NY 10464
72 X151 CIP X 7 I.S. 151 WINDOWS/EXTERIOR MASONRY 3426000 false -73.9211309650046 40.82298359886116 250 156 STREET Bronx NY 10451
73 X158 CIP X 12 I.S. 158 PLANYC BOILER CONVRSN/PLANYC CLIMATE CTRL 3918000 false -73.90004072543645 40.827686311428195 800 HOME STREET Bronx NY 10456
74 X166 CIP X 9 I.S. 166 PA SYSTEM 798000 false -73.91779283496383 40.82872889992432 250 164 STREET Bronx NY 10456
75 K171 CIP K 19 I.S. 171/P.S. 7 SWB-FACADE/PARAPETS/PAVED AREA-BLACKTOP/FENCING 4828290 false -73.86966791838911 40.6861530810444 528 RIDGEWOOD AVENUE BROOKLYN NY 11208
76 X183 CIP X 7 I.S. 183 PLANYC BOILER/PLANYC CLIMATE CTRL 3492000 false -73.92553701094046 40.813386726364335 339 MORRIS AVENUE Bronx NY 10451
77 X184 CIP X 7 I.S. 184 PLANYC BOILER/PLANYC CLIMATE CTRL 4910270 false -73.90589968772917 40.81888494686362 778 FOREST AVENUE BRONX NY 10456
78 X129 CIP X 12 I.S. 191 @X129 NEW SCIENCE DEMONSTRATION ROOM 438000 false -73.8865507352739 40.84549455019818 2055 MAPES AVENUE Bronx NY 10460
79 Q192 CIP Q 29 I.S. 192 CITY COUNCIL REQ - LIGHTING FIXTURES 1800000 false -73.75923519834566 40.69812711747255 109 89 204 STREET QUEENS NY 11412
80 X193 CIP X 12 I.S. 193 PLANYC BOILER/PLANYC CLIMATE CTRL 3885000 false -73.88973979569231 40.84359404962676 1919 PROSPECT AVENUE Bronx NY 10457
81 M195 CIP M 5 I.S. 195 (ECF) PAVED AREAS BLACKTOP 770000 false -73.95739030775974 40.81937508503853 625 133 STREET New York NY 10027
82 M195 CIP M 5 I.S. 195 (ECF) PLANYC BOILER CONVRSN/PLANYC CLIMATE CTRL 3788000 false -73.95739030775974 40.81937508503853 625 133 STREET New York NY 10027
83 M195 CIP M 5 I.S. 195 (ECF) SCIENCE DEMO ROOM UPGRADE 469000 false -73.95739030775974 40.81937508503853 625 133 STREET New York NY 10027
84 K002 CIP K 17 I.S. 2 SCIENCE DEMO ROOM UPGRADE 345000 false -73.95158492978685 40.6561968174429 655 PARKSIDE AVE BROOKLYN NY 11226
85 K211 CIP K 18 I.S. 211 WALK IN FREEZER REPLACEMENT 343200 false -73.89642371322941 40.64348164485336 1001 100 STREET BROOKLYN NY 11236
86 X116 CIP X 12 I.S. 216 (@X116) PLANYC BOILER CONVERSION/PLANYC CLIMATE CONTROL 4468000 false -73.89392410102988 40.822428225918 977 FOX STREET Bronx NY 10459
87 K218 CIP K 19 I.S. 218 WALK IN FREEZER REPLACEMENT 2120000 false -73.8742292684109 40.67070199017694 370 FOUNTAIN AVENUE Brooklyn NY 11208
88 M218 CIP M 6 I.S. 218 FLOOD ELIMINATION/WINDOWS/ROOFS 1867000
89 X148 CIP X 9 I.S. 219 (OLD I.S. 148) RETAINING WALL 583000 false -73.90440606498304 40.833636708483105 3630 THIRD AVENUE Bronx NY 10456
90 X022 CIP X 9 I.S. 22 FLOOD ELIMINATION/EXT MASONRY/PARAPETS 3990000 false -73.91408537225458 40.83322765425807 270 167 STREET Bronx NY 10456
91 X149 CIP X 7 I.S. 223 (@X149) FY10 RESO A LIBRARY 328000 false -73.92087771305378 40.814006958025736 360 145 STREET Bronx NY 10454
92 Q226 CIP Q 27 I.S. 226 EXT MASONRY/ROOFS 6691000 false -73.81770717164864 40.67334524268887 121 10 ROCKAWAY BLVD SO OZONE PARK NY 11420
93 Q227 CIP Q 30 I.S. 227 CLIMATE CONTROL/HEATING PLANT UPGRADE 5294240 false -73.8723788986672 40.76341327370369 32 02 JUNCTION BLVD QUEENS NY 11369
94 X082 CIP X 9 I.S. 232 (OLD 82) @X082 ACCESSIBILITY/FIRE ALARM 8193000 false -73.91609317547116 40.84901889749711 1700 MACOMBS ROAD Bronx NY 10453
95 R024 CIP R 31 I.S. 24 AUDITORIUM FLOORS 77000 false -74.14643932417457 40.54537484828736 225 CLEVELAND AVENUE Staten Island NY 10308
96 K246 CIP K 17 I.S. 246 SWB EXT MASONRY/SWB FLOOD/SWB WINDOWS/ROOF/PARAPET 4877000 false -73.95284496748633 40.64867994929756 72 VERONICA PLACE Brooklyn NY 11226
97 K252 CIP K 18 I.S. 252 LL 41/16 COMPLIANCE 29175.77 false -73.92001930874018 40.658327698451274 1084 LENOX ROAD Brooklyn NY 11212
98 M118 CIP M 3 I.S. 256 (@M118) IP SURVEILLANCE CAMERAS 216300 false -73.97053578315399 40.79156776872092 154 93 STREET New York NY 10025
99 M118 CIP M 3 I.S. 256 (@M118) STRUCTURAL BEAMS-REINFORCING 410160 false -73.97053578315399 40.79156776872092 154 93 STREET New York NY 10025
100 K265 CIP K 13 I.S. 265 SCIENCE LAB 765000 false -73.97572262403403 40.6963585351778 101 PARK AVENUE Brooklyn NY 11205
101 K278 CIP K 22 I.S. 278 ROOFS/EXT MASONRY/FLOOD ELMNTN 5700000 false -73.93925429415825 40.60673733465248 1925 STUART STREET Brooklyn NY 11229
102 K285 CIP K 18 I.S. 285 HEATING PLANT UPG/CLIMATE CTRL 4342000 false -73.921125893014 40.64688182984673 5905 BEVERLY ROAD Brooklyn NY 11203
103 K291 CIP K 32 I.S. 291 HEATING PLANT UPGRADE/LOW-VOLTAGE 15199800 false -73.91527095847802 40.695256718115104 231 PALMETTO STREET Brooklyn NY 11221
104 K292 CIP K 19 I.S. 292 CONCRETE FACADE 3477000 false -73.89288114787357 40.67148750548741 300 WYONA STREET Brooklyn NY 11207
105 K318 CIP K 14 I.S. 318 PARAPETS/EXT MASONRY/EAST ROOF & FAN ROOM ROOF 4340000 false -73.94902462531712 40.702422370537974 101 WALTON STREET Brooklyn NY 11206
106 K320 CIP K 17 I.S. 320 FLOOD ELMNTN/PARAPETS/SAFETY SYSTEMS/EXT MASONRY 3000050 false -73.95904314893046 40.66501317051537 46 MCKEEVER PLACE Brooklyn NY 11225
107 M125 CIP M 5 I.S. 362 @ M125 SCIENCE LAB 1354564 false -73.95506966627367 40.81015743904045 425 123 STREET New York NY 10027
108 X067 CIP X 12 I.S. 372 - X NEW SCIENCE LAB SUITE 945000 false -73.88479553814723 40.84392182388185 2024 MOHEGAN AVENUE Bronx NY 10460
109 K383 CIP K 32 I.S. 383 PLANYC BOILER CONVERSION/PLANYC CLIMATE CONTROL 4668000 false -73.91986972170302 40.69762704651303 1300 GREENE AVENUE Brooklyn NY 11237
110 K390 CIP K 17 I.S. 390 STAIRS IN STAIRWELL/FLOOD ELIM/CEC REQ-WINDOWS 4980000 false -73.93695770187597 40.67268717852895 1224 PARK PLACE Brooklyn NY 11213
111 K049 CIP K 14 I.S. 49 FIRE ALARM 468000
112 X052 CIP X 8 I.S. 52 PARAPETS/MASONRY/ROOFS/FLOOD/PAVED AREAS/SAFETY 8893000 false -73.90236106648733 40.815402542289604 681 KELLY STREET Bronx NY 10455
113 K055 CIP K 23 I.S. 55 SAFETY SYSTEM/EXT MASONRY/WINDOWS 4535000 false -73.91355073965249 40.67414724704465 2021 BERGEN STREET Brooklyn NY 11233
114 Q059 CIP Q 29 I.S. 59 LIBRARY UPGRADE 408000 false -73.75087393328533 40.66971118122609 132 55 RIDGEDALE STREET SPRINGFIELD GARDENS NY 11413
115 K061 CIP K 17 I.S. 61 BOILER REPLACEMENT/CONCRETE PAVER/CLIMATE CTRL 5462800 false -73.9494072266281 40.66397432612488 400 EMPIRE BLVD Brooklyn NY 11225
116 R072 CIP R 31 I.S. 72 ELEVATORS & ESCALATORS 691000 false -74.15872479868553 40.59325258206939 33 FERNDALE AVENUE Staten Island NY 10314
117 Q849 CIP Q 24 I.S. 77 AUDITORIUM UPGRADE 1588000 false -73.90222734682403 40.699542257956786 976 SENECA AVENUE RIDGEWOOD NY 11385
118 Q849 CIP Q 24 I.S. 77 EXTERIOR MASONRY/WINDOWS/ROOFS/PARAPETS/AC 12189000 false -73.90222734682403 40.699542257956786 976 SENECA AVENUE RIDGEWOOD NY 11385
119 K078 CIP K 22 I.S. 78 FLOOD ELMNTN/EXT MASONRY 1589500 false -73.91286070496677 40.62118169409423 1420 68 STREET Brooklyn NY 11234
120 X084 CIP X 12 I.S. 84 (@X084) PLANYC BOILER CONVRSN/PLANYC CLIMATE CTRL 3997000 false -73.88752511974951 40.830644846579055 1434 LONGFELLOW AVENUE Bronx NY 10459
121 K043 CIP K 21 I.S. 98 EXT MASONRY/ROOFS/SAFETY SYSTEMS/PARAPETS 4869000 false -73.95376310696645 40.58324060677732 1401 EMMONS AVENUE Brooklyn NY 11235
122 X098 CIP X 12 I.S. 98 RETAINING WALL 229571 false -73.89054065425974 40.83591680891802 1619 BOSTON ROAD Bronx NY 10460
123 X139 CIP X 7 INTERNATIONAL COMMUNITY NEW SCIENCE LAB SUITE 1182000 false -73.91782345430987 40.81004862442692 345 BROOK AVENUE Bronx NY 10454
124 X113 CIP X 11 IS 113 FY07 RES0 A PLAYGROUND REDEVELOPMENT 555000.05 false -73.86088460706405 40.88086639044798 3710 BARNES AVE Bronx NY 10467
125 X285 CAP X 9 IS 285 New 34111000 false -73.92787186717345 40.838131334426876 200 167th St Bronx NY 10452
126 Q297 CIP Q 30 IS 297 DEMOLITION FOR IS 297 746444 false -73.88361254528269 40.75163073936716 74 03 34TH AVE JACKSON HEIGHTS NY 11372
127 X147 CIP X 9 IS 339 (OLD IS 147X) PLANYC BOILER/PLANYC CLIMATE CTRL 7116000 false -73.90441220971972 40.84131870954352 1600 WEBSTER AVENUE Bronx NY 10457
128 Q404 CAP Q 78 IS/HS 404 New 61098000 false -73.93866902925225 40.74570244980828 1 50 51st Ave Long Island City NY 11101
129 K422 CAP K 78 IS/HS @ Spring Creek New 72847565 false -73.87479320757765 40.65755969070249 1065 Elton St Brooklyn NY 11208
130 X475 CIP X 10 J F KENNEDY HS FY09 FINAL C OF O FOR MULTI-CAMPUS 8387000 false -73.91213621128965 40.877210772673564 99 TERRACE VIEW AVENUE Bronx NY 10463
131 Q141 CIP Q 30 J.H.S. 141 ROOFS/SAFETY/EXT MASONRY/PARAPETS 7459000 false -73.90960650023976 40.780092072491186 37 11 21 AVENUE QUEENS NY 11105
132 X141 CIP X 10 J.H.S. 141 HEATING PLANT UPGRADE/CLIMATE CONTROL 3967000 false -73.9131873185513 40.88826732332943 660 237 STREET Bronx NY 10463
133 Q157 CIP Q 28 J.H.S. 157 ROOFS/WDWS/HEATING UPG/FLOOD/MASON/PARAPET/CLIMATE 14279000 false -73.86148084756303 40.72646491702238 63 55 102ND ST QUEENS NY 11374
134 Q168 CIP Q 25 J.H.S. 168 ACCESSIBILITY/FIRE ALARM/CLIM CTRL/HEAT PL UPG 8877000 false -73.79226817393703 40.72816440726166 158 40 76 ROAD QUEENS NY 11366
135 Q168 CIP Q 25 J.H.S. 168 SCIENCE LAB UPGRADE 972000 false -73.79226817393703 40.72816440726166 158 40 76 ROAD QUEENS NY 11366
136 Q180 CIP Q 27 J.H.S. 180 WINDOW/AC RETROFIT/AC SPLIT/MASONRY/PARAPET/ROOFS 22000000 false -73.85077700055808 40.57657830564432 3 20 BEACH 104 STREET ROCKAWAY NY 11694
137 Q237 CIP Q 25 J.H.S. 237 CEC REQUEST - SCIENCE LAB UPG 1176000 false -73.82147854789662 40.7512997969481 46 21 COLDEN STREET QUEENS NY 11355
138 Q025 CIP Q 25 J.H.S. 25 SWB-EXT MASONRY/ROOFS/PARAPETS 5618000 false -73.82147854789662 40.7512997969481 34 65 192 STREET QUEENS NY 11355
139 K303 CIP K 21 J.H.S. 303 FY11 RESO A ELECTRICAL SYSTEM 196000 false -73.9727279509789 40.582102240554626 501 WEST AVENUE Brooklyn NY 11224
140 K324 CIP K 16 J.H.S. 324 PLANYC BOILER CONVRSN/PLANYC CLIMATE CTRL 3819000 false -73.93217356292678 40.68830858053017 800 GATES AVENUE Brooklyn NY 11221
141 M045 CIP M 4 J.H.S. 45 EXT MASONRY/ROOFS/PARAPETS 6670000 false -73.93335561512028 40.798869844574995 2351 1ST AVENUE New York NY 10035
142 K057 CIP K 16 J.H.S. 57 GYM ROOF/SEWAGE FLOODING/PARAPETS/EXT MASONRY 8625000 false -73.93365273330902 40.691184878420714 125 STUYVESANT AVENUE Brooklyn NY 11221
143 M070 CIP M 2 J.H.S. 70 EXTERIOR MASONRY/PARAPETS/ROOFS/WINDOWS 10489000 false -74.00204411405305 40.742083302451746 333 17 STREET NEW YORK NY 10011
144 Q072 CIP Q 28 J.H.S. 72 EXT MASONRY/ROOFS/FLOOD ELMNTN/PARAPETS 6176000 false -73.77530690169215 40.6769452621142 133 25 ROCHDALE VILLAG NY 11434
145 X080 CIP X 10 J.H.S. 80/P.S. 280 FLOOD ELIMINATION 1091773 false -73.88147439492262 40.87619978760749 149 MOSHOLU PKWY BRONX NY 10467
146 Q470 CIP Q 28 JAMAICA HS CLIMATE CONTROL/HEATING PLANT UPGRADE 8100000 false -73.79282099978928 40.71311535449007 167 01 GOTHIC DRIVE QUEENS NY 11432
147 M440 CIP M 2 JAMES BALDWIN HS LIBRARY UPGRADE 1132000 false -74.00211145861485 40.74287308397775 351 18 STREET New York NY 10011
148 K425 CIP K 22 JAMES MADISON HS FIRE ALARM 485500 false -73.94845748858913 40.609742865286414 3787 BEDFORD AVENUE Brooklyn NY 11229
149 K425 CIP K 22 JAMES MADISON HS SCIENCE LAB UPGRADE 985000 false -73.94845748858913 40.609742865286414 3787 BEDFORD AVENUE Brooklyn NY 11229
150 Q008 CIP Q 28 JHS 8 SCIENCE LAB UPGRADE 1081000 false -73.7875740339145 40.698104881734935 108 35 167 STREET JAMAICA NY 11433
151 Q425 CIP Q 25 JOHN BOWNE H.S. WIND REPLACE/AC RETROFIT/WIND BOE PORTION/UPG F.A. 27239000 false -73.82610630716033 40.730323085042414 63 25 MAIN STREET FLUSHING NY 11367
152 K460 CIP K 15 JOHN JAY HS CEC REQUEST-HEAT'G PLANT UPG/ELEC SYS/CLIMATE CTRL 8168000 false -73.97924096910276 40.669623280409056 237 7TH AVENUE Brooklyn NY 11215
153 K400 CIP K 21 LAFAYETTE HS UPGRADE BOILER PLANT/CLIMATE CONTROL 12400000 false -73.98615807328032 40.59448014682783 2630 BENSON AVENUE Brooklyn NY 11214
154 Q490 CIP Q 29 LAW, GOVERNMENT & COMMUNITY HS CAMPUS RESTRUCTURING 435000 false -73.73568329125084 40.694293339066405 207 01 116TH AVENUE CAMBRIA HEIGHTS NY 11411
155 X406 CIP X 8 LEHMAN AF ATHLETIC FIELDS 3748000 false -73.83830582037355 40.840618266233676 3000 TREMONT AVENUE BRONX NY 10461
156 X405 CIP X 8 LEHMAN HS FY07 RESO A COMPUTER EQUIPMENT UPGR 75757.5758 false -73.83830582037355 40.840618266233676 3000 TREMONT AVENUE Bronx NY 10461
157 X405 CIP X 8 LEHMAN HS STAIR WINDOWS 1087000 false -73.83830582037355 40.840618266233676 3000 TREMONT AVENUE Bronx NY 10461
158 M645 CIP M 2 LIFE SCIENCE SECONDARY (@M645) FLOOD ELMNTN/EXT MASONRY/PARAPETS/ROOFS 7819500 false -74.03340357628376 40.616237105936534 320 96 STREET New York NY 10028
159 M490 CIP M 3 MARTIN LUTHER KING HS AUD/ALARM REPLACEMENT/FINAL C OF O/VENTILATION 4647000 false -73.98485156692796 40.77425845083081 122 AMSTERDAM AVENUE New York NY 10023
160 X099 CIP X 12 METROPOLITAN HS @ FORMER PS99X CODE COMPLIANCE/PA SYSTEM/PARAPET/MASONRY/ROOFS 5186000 false -73.89313106784448 40.82552621616202 1180 REVEREND JAMES POLITE AVE BRONX NY 10459
161 M081 CIP M 3 MID-MAN ADULT TRAINING CENTER VENTILATION/ELEC SYSTEM 3711000 false -73.95128826417978 40.80602392163958 212 120TH ST NEW YORK NY 10027
162 Q520 CIP Q 30 MIDDLE COLLEGE HS @LAGUARDIA DEMOLITION FOR MIDDLE COLLEGE HS 13112000 false -73.93866902925225 40.74570244980828 45 35 VAN DAM ST LONG ISLAND CITY NY 11101
163 K406 CIP K 21 MIDWOOD AF (MAIN) FY11 RESO A ATHLETIC FIELDS 2146000 false -73.95905922151692 40.62291467677543 1124 17TH STREET BROOKLYN NY 11230
164 M435 CIP M 4 MNHT CENTER FOR MATH & SCIENCE INTERIOR SPACES MARBLE PANELS ONLY 843000 false -73.9336482061862 40.794391919064594 260 PLEASANT AVENUE New York NY 10029
165 X400 CIP X 9 MORRIS HS CERTIFICATE OF OCCUPANCY 5229000 false -73.90448079300582 40.8276109731601 1110 BOSTON RD BRONX NY 10456
166 K390 CIP K 17 MS 334 SCIENCE DEMO ROOM UPGRADE 808000 false -73.93695770187597 40.67268717852895 1224 PARK PLACE Brooklyn NY 11213
167 Q520 CAP Q 78 Middle College HS @ LaGuardia New 27927000 false -73.93866902925225 40.74570244980828 45 35 Van Dam St Long Island City NY 11101
168 Q520 CAP Q 78 Middle College HS @ LaGuardia Room Conversion 13112000 false -73.93866902925225 40.74570244980828 45 35 Van Dam St Long Island City NY 11101
169 R435 CIP R 31 NEW DORP HS LL 41/16 COMPLIANCE 10621.99 false -74.10726241466374 40.56922370455037 465 NEW DORP LANE Staten Island NY 10306
170 K032 CIP K 15 NEW HORIZONS SCHOOL FY11 RESO A AUDITORIUM UPDATE 228000 false -73.99193273420018 40.680429275762485 317 HOYT STREET Brooklyn NY 11231
171 M868 CIP M 2 NEW HS DEMOLITION FOR IS/HS 868 2182222 false -73.99224802961538 40.73631370241236 10 15TH ST NEW YORK NY 10003
172 K445 CIP K 20 NEW UTRECHT HS EXT MASONRY/FLOOD ELMNTN/PARAPETS/ROOFS 10570000 false -74.00368977353216 40.61345273159829 1601 80TH ST Brooklyn NY 11214
173 K445 CIP K 20 NEW UTRECHT HS FY09 RESO A LIBRARY UPGRADE 353250 false -74.00368977353216 40.61345273159829 1601 80TH ST Brooklyn NY 11214
174 Q450 CIP Q 30 NEWCOMERS HS EXT MASONRY/PARAPETS/FLOOD ELMNTN 8395000 false -73.93866902925225 40.74570244980828 28 01 41ST AVENUE LONG ISLAND CITY NY 11101
175 Q455 CIP Q 24 NEWTOWN HS FLOORS 2662000 false -73.87475600018911 40.74125600016447 48 01 90 STREET QUEENS NY 11373-4099
176 M001 CIP M 2 P.S. 1 EXTERIOR MASONRY/PARAPETS/PAVED AREAS-CONCRETE 5139000 false -73.99734184420807 40.712756780441026 8 HENRY STREET New York NY 10038
177 X001 CIP X 7 P.S. 1 IP SURVEILLANCE CAMERAS 1056000 false -73.91874134609046 40.818762661509254 335 152 STREET Bronx NY 10451
178 Q100 CIP Q 27 P.S. 100 FLOOD ELMNTN/EXT MASONRY/PARAPETS 3199900 false -73.81770717164864 40.67334524268887 111 11 118 STREET JAMAICA NY 11420
179 K101 CIP K 21 P.S. 101 RESO A - RESO A SCIENCE LAB 268800 false -73.99175987597347 40.59787681678778 2360 BENSON AVENUE Brooklyn NY 11214
180 M101 CIP M 4 P.S. 101 ACCESSIBILITY 3689000 false -73.94443112132485 40.79566898981534 141 111 STREET NEW YORK NY 10029
181 M101 CIP M 4 P.S. 101 ELEC UPGRADE 287950 false -73.94443112132485 40.79566898981534 141 111 STREET NEW YORK NY 10029
182 X103 CIP X 11 P.S. 103 FY11 RESO A AUDITORIUM UPGRADE 419000 false -73.8614419003563 40.89224585042134 4125 CARPENTER AVENUE Bronx NY 10466
183 Q105 CIP Q 27 P.S. 105 SWB EXT MASONRY/PARAPETS 1050000 false -73.78189411037111 40.59623844790385 420 BEACH 51 STREET FAR ROCKAWAY NY 11691
184 K108 CIP K 19 P.S. 108 FY11 RESO A ELECTRICAL SYSTEM 345900 false -73.88403250144414 40.681012991519715 200 LINWOOD STREET Brooklyn NY 11208
185 Q108 CIP Q 27 P.S. 108 CAFE MULTIPURPOSE ROOM UPG 233000 false -73.81770717164864 40.67334524268887 108 10 109 AVENUE SO OZONE PARK NY 11420
186 X011 CIP X 9 P.S. 11 FLOOD ELMNTN/ROOFS/MASONRY/PARAPETS 6116000 false -73.92578827979769 40.83927054580515 1257 OGDEN AVENUE Bronx NY 10456
187 X011 CIP X 9 P.S. 11 SIDEWALK BRIDGE 19442.75 false -73.92578827979769 40.83927054580515 1257 OGDEN AVENUE Bronx NY 10456
188 K110 CIP K 14 P.S. 110 ROOFS/WINDOWS 3778000 false -73.94223625609604 40.723642548516075 124 MONITOR STREET Brooklyn NY 11222
189 M110 CIP M 1 P.S. 110 FLOOD ELIMINATION 547000 false -73.97981939917048 40.715620302518175 285 DELANCY STREET New York NY 10002
190 M111 CIP M 2 P.S. 111 CLIMATE CONTROL/HEATING PLANT UPGRADE 4305729 false -73.98953901918651 40.76616371249781 440 53 STREET New York NY 10019
191 Q111 CIP Q 30 P.S. 111 HEATING PLANT UPG/CLIMATE CTRL 3811000 false -73.93866902925225 40.74570244980828 37 15 13 STREET QUEENS NY 11101
192 K112 CIP K 20 P.S. 112 PARAPETS/EXT MASONRY/FLOOD ELMNTN 1420000 false -74.00071660633716 40.619828663672465 7115 15 AVENUE Brooklyn NY 11228
193 K115 CIP K 18 P.S. 115 EXT MASONRY/ROOFS/PARAPETS 5747000 false -73.89697682968284 40.63477746307819 1500 92ND ST Brooklyn NY 11236
194 M115 CIP M 6 P.S. 115 EXTERIOR MASONRY/HAZARDOUS-PARAPETS/ROOFS 2979000 false -73.93487128414608 40.84641769845956 586 177 STREET New York NY 10033
195 K116 CIP K 32 P.S. 116 FY11 RESO A SCIENCE 388000 false -73.91643018838859 40.69774977550555 515 KNICKERBOCKER AVENUE Brooklyn NY 11237
196 M116 CIP M 2 P.S. 116 FY11 RESO A PLAYGROUND REDEVELOPMENT 300000 false -73.97834193335258 40.74491153710013 210 33 STREET New York NY 10016
197 X012 CIP X 11 P.S. 12 HEATING PLT UPG/CLIMATE CNTRL/LOW-VOLT ELECTRICAL 5722850 false -73.84450496658253 40.84010546581863 2555 TRATMAN AVENUE Bronx NY 10461
198 K121 CIP K 21 P.S. 121 SWB-EXT MASONRY 1295000 false -73.97875690985585 40.62330608676003 5301 20TH AVENUE Brooklyn NY 11204
199 Q121 CIP Q 28 P.S. 121 CLIMATE CONTROL/HEATING PLANT UPGRADE 3305000 false -73.81770717164864 40.67334524268887 126 10 109 AVENUE SO OZONE PARK NY 11420
200 M123 CIP M 5 P.S. 123 FY10 RESO A SCIENCE LAB UPGRADE 444000 false -73.94425698262674 40.81972211192899 301 140 STREET New York NY 10030
201 Q124 CIP Q 27 P.S. 124 EXT MASONRY/PARAPETS 3342000 false -73.81770717164864 40.67334524268887 129 15 150 AVENUE SO OZONE PARK NY 11420
202 M124 CIP M 2 P.S. 124 (ECF) PARAPETS/EXTERIOR MASONRY 1367000 false -73.99579682364542 40.71420254465372 40 DIVISION STREET New York NY 10002
203 M126 CIP M 2 P.S. 126 FY10 RESO A LIBRARY 415000 false -73.9966721705172 40.710854298398544 80 CATHERINE STREET New York NY 10038
204 X126 CIP X 9 P.S. 126 (ECF) MASONRY/ROOFS/FLOOD ELMNTN/PARAPETS 5194000 false -73.9283372125368 40.83581122271332 175 166 STREET Bronx NY 10452
205 K127 CIP K 20 P.S. 127 EXT MASONRY 2149000 false -74.01885662493696 40.62406545959219 7805 7 AVENUE Brooklyn NY 11209
206 Q127 CIP Q 30 P.S. 127 AUD UPG/CAFETERIA MULTIPURPOSE RM UPG 985000 false -73.8723788986672 40.76341327370369 98 01 25 AVENUE EAST ELMHURST NY 11369
207 X129 CIP X 12 P.S. 129 (PAIRED W X234) EXTERIOR MASONRY 2598000 false -73.8865507352739 40.84549455019818 2055 MAPES AVENUE Bronx NY 10460
208 X129 CIP X 12 P.S. 129 (PAIRED W X234) SIDEWALK BRIDGE (EXT. MASONRY) 32157.31 false -73.8865507352739 40.84549455019818 2055 MAPES AVENUE Bronx NY 10460
209 K132 CIP K 14 P.S. 132 FLOOD ELMNTN/WINDOWS/PARAPETS 6597000 false -73.9456777023208 40.71219332880771 320 MANHATTAN AVENUE Brooklyn NY 11206
210 K132 CIP K 14 P.S. 132 FY10 RESO A GYM RENOVATION 70000 false -73.9456777023208 40.71219332880771 320 MANHATTAN AVENUE Brooklyn NY 11206
211 K132 CIP K 14 P.S. 132 WORK REQUIRED TO OBTAIN C OF O 932000 false -73.9456777023208 40.71219332880771 320 MANHATTAN AVENUE Brooklyn NY 11206
212 M132 CIP M 6 P.S. 132 FY11 RESO A SCIENCE LAB 243500 false -73.93432269770818 40.85071645775963 185 WADSWORTH AVENUE New York NY 10033
213 X132 CIP X 9 P.S. 132 INTERIOR STRUCTURAL INVESTMENT - TEST 5005000 false -73.90656891847989 40.83194251909681 1245 WASHINGTON AVENUE Bronx NY 10456
214 K135 CIP K 18 P.S. 135 PARAPETS/FLOOD ELMNTN/ROOFS 1784000 false -73.93311810571299 40.65357812334444 684 LINDEN BLVD Brooklyn NY 11203
215 K138 CIP K 17 P.S. 138 ROOFS/PARAPETS/EXT MASONRY 2793000 false -73.95141196170016 40.674353675202426 760 PROSPECT PLACE Brooklyn NY 11216
216 K138 CIP K 17 P.S. 138 SCIENCE DEMO ROOM UPGRADE 762000 false -73.95141196170016 40.674353675202426 760 PROSPECT PLACE Brooklyn NY 11216
217 M844 CIP M 2 P.S. 138 (@M844) SWB - FACADE/PARAPETS/ROOFS 8833000 false -73.97802974198606 40.73757796345728 400 1ST AVENUE New York NY 10010
218 K849 CIP K 22 P.S. 139 AX (OLD 134) LL 41/16 COMPLIANCE 100000 false -73.97391982714538 40.632244467750226 4001 18 AVENUE Brooklyn NY 11208
219 R014 CIP R 31 P.S. 14 ROOFS/EXT MASONRY/WINDOWS/FLOORS/SAFETY SYSTEMS 3315000 false -74.07837687526822 40.622148795415534 100 TOMPKINS AVENUE Staten Island NY 10304
220 Q140 CIP Q 28 P.S. 140 PARAPETS 3269000 false -73.77530690169215 40.6769452621142 116 00 166 ST JAMAICA NY 11434
221 M142 CIP M 1 P.S. 142 ELEVATORS & ESCALATORS/TOILETS-STUDENTS 2995000 false -73.98376386528082 40.71945606619147 100 ATTORNEY STREET New York NY 10002
222 K145 CIP K 32 P.S. 145 PARAPETS/FLOOD ELMNTN/EXT MASONRY/EXT LIGHTING 4737575 false -73.93232374110994 40.7016598916867 100 NOLL STREET Brooklyn NY 11206
223 K142 CIP K 15 P.S. 146 (@K142) PARAPETS/EXTERIOR MASONRY/ROOFS/WINDOWS/FLOOD 13106731 false -74.00136121297172 40.68011121449034 610 HENRY STREET Brooklyn NY 11231
224 Q147 CIP Q 29 P.S. 147 FLOORS 537000
225 K015 CIP K 15 P.S. 15 LIBRARY UPGRADE 411054
226 M153 CIP M 6 P.S. 153 DEFECTIVE MASONRY/ROOFS/DOORS/PARAPETS 4134000 false -73.94689450753023 40.8262600138953 1750 AMSTERDAM AVENUE New York NY 10031
227 Q154 CIP Q 25 P.S. 154 ACCESSIBILITY/ELEC SYS/MASONRY/ROOFS/FLOOD/PARAPET 6127000 false -73.79226817393703 40.72816440726166 75 02 162 STREET FLUSHING NY 11366
228 M155 CIP M 4 P.S. 155 FLOOD ELMNTN/PARAPETS/EXT MASONRY 2350000 false -73.93679763009355 40.797501313680264 319 117 STREET New York NY 10035
229 Q156 CIP Q 29 P.S. 156 SWB - EXT MASONRY/FLOOD ELMNTN/WINDOWS/PARAPETS 7354000 false -73.75087393328533 40.66971118122609 229 02 137 AVENUE SPRINGFIELD GAR NY 11413
230 X156 CIP X 7 P.S. 156 CINDER BLOCK WALLS & CEILING BEAMS/FLOOD ELIMN 9780000 false -73.92024166597307 40.82226334901861 750 CONCOURSE VILLAGE Bronx NY 10451
231 K157 CIP K 14 P.S. 157 SWB-MASONRY 1843000 false -73.95959701353979 40.69546110023352 850 KENT AVENUE Brooklyn NY 11205
232 X157 CIP X 7 P.S. 157 FY11 RESO A LIBRARY UPGRADE 178000 false -73.90861019557366 40.81920242494304 757 CAULDWELL AVENUE Bronx NY 10456
233 K158 CIP K 19 P.S. 158 EXT MASONRY/FLOOD ELIMINATION 4244000 false -73.88480467674624 40.672471173748015 400 ASHFORD STREET Brooklyn NY 11207
234 K016 CIP K 14 P.S. 16 CEC REQUEST - STUDENT CAFETERIA UPG 1139000 false -73.96144993294666 40.706051659903764 157 WILSON STREET Brooklyn NY 11211
235 X160 CIP X 11 P.S. 160 FY11 RESO A LIBRARY 345300 false -73.8242748469253 40.86466106194175 4140 HUTCHINSON RIVER PARKWAY Bronx NY 10475
236 K161 CIP K 17 P.S. 161 LIBRARY UPGRADE 89500 false -73.94885261044026 40.66615564566118 330 CROWN STREET Brooklyn NY 11225
237 X163 CIP X 9 P.S. 163 INTERIOR MODERNIZATIONS/ROOFS 3143000 false -73.89841328719618 40.85190466527893 2075 WEBSTER AVENUE Bronx NY 10457
238 M165 CIP M 3 P.S. 165 ROOF TILES & SNOW GUARD/EXT MASONRY/FLOOD/PARAPETS 2118994.65 false -73.96526411800443 40.80275180384162 234 109 STREET New York NY 10025
239 K017 CIP K 14 P.S. 17 WINDOWS/EXT MASONRY/FLOOD ELMNTN/ROOFS/PARAPETS 7842000 false -73.95663645640386 40.715277522913524 208 5 STREET Brooklyn NY 11211
240 M173 CIP M 6 P.S. 173 FIRE ALARM 359900 false -73.94042010106682 40.84561730185351 306 FORT WASHINGTON AVE New York NY 10033
241 Q174 CIP Q 28 P.S. 174 FY11 RESO A LIBRARY UPGRADE 104000 false -73.86148084756303 40.72646491702238 65 10 DIETERLE CRESCENT REGO PARK NY 11374
242 Q175 CIP Q 28 P.S. 175 FY11 RESO A FENCING 319571 false -73.86148084756303 40.72646491702238 64 35 102 STREET REGO PARK NY 11374
243 X175 CIP X 11 P.S. 175 INTERIOR MODERNIZATIONS/WINDOWS 5296000 false -73.78516944174876 40.84381012246547 200 CITY ISLAND AVENUE Bronx NY 10464
244 K178 CIP K 23 P.S. 178 FLOORS 695000 false -73.9159181765978 40.675074588842676 2163 DEAN STREET Brooklyn NY 11212
245 Q178 CIP Q 26 P.S. 178 HEATING PLANT UPGRADE/CLIMATE CONTROL/MASONRY 7100000 false -73.7671414999802 40.71722229567246 189 10 RADNOR RD JAMAICA NY 11423
246 R018 CIP R 31 P.S. 18 BOILER REPLACEMENT 3171000 false -74.11747369098056 40.63603930909672 221 BROADWAY Staten Island NY 10310
247 X182 CIP X 8 P.S. 182 BRICK MASONRY WATER PENETRATION/WINDOWS 3464027 false -73.85625766017206 40.817936957362555 601 STICKBALL BLVD BRONX NY 10473
248 Q183 CIP Q 27 P.S. 183 MSNRY/SFTY/WINDOW/LIBRARY UPG/HVAC/ROOF/FIRE ALARM 8248000 false -73.82495531523557 40.6183036047276 2 45 BEACH 79 STREET ROCKAWAY BEACH NY 11693
249 M137 CIP M 1 P.S. 184 (SHUANG WEN @M137) FY11 RESO A PLAYGROUND REDEVELOPMENT 230000 false -73.98042410080346 40.71217484702834 327 CHERRY ST New York NY 10002
250 M137 CIP M 1 P.S. 184 (SHUANG WEN @M137) SWB-HAZARDOUS VIOLATION/ROOFS 979000 false -73.98042410080346 40.71217484702834 327 CHERRY ST New York NY 10002
251 Q186 CIP Q 26 P.S. 186 ACCESSIBILITY/FIRE ALARM SYSTEM/ELECTRICAL SYSTEMS 4577000 false -73.72415699894628 40.73704138495202 252 12 72 AVENUE BELLEROSE NY 11426
252 Q186 CIP Q 26 P.S. 186 FLOOD ELIMINATION 968000 false -73.72415699894628 40.73704138495202 252 12 72 AVENUE BELLEROSE NY 11426
253 K188 CIP K 21 P.S. 188 RESO A GYM ADDITION/FY10 RESO A PLAYGROUND 7879007 false -74.00012292790208 40.57720405091032 3314 NEPTUNE AVENUE Brooklyn NY 11224
254 M188 CIP M 1 P.S. 188 ACCESSIBILITY 6422000 false -73.97792876586212 40.719709960041634 442 HOUSTON STREET New York NY 10002
255 M188 CIP M 1 P.S. 188 EXTERIOR MASONRY/ROOFS/PARAPETS/WINDOWS 13457000 false -73.97792876586212 40.719709960041634 442 HOUSTON STREET New York NY 10002
256 K189 CIP K 17 P.S. 189 LOW-VOLT SYSTEM 840000 false -73.92626797722787 40.66553683638519 1100 NEW YORK AVE Brooklyn NY 11212
257 Q019 CIP Q 24 P.S. 19 SWB - EXT MASONRY/ROOFS/FLOOD ELIMINATION/PARAPETS 16175000 false -73.85304068857687 40.749678220373596 98 02 ROOSEVELT AVE CORONA NY 11368
258 R019 CIP R 31 P.S. 19 IP SURVEILLANCE CAMERAS 1270000 false -74.127115288525 40.631189624083056 780 POST AVENUE Staten Island NY 10310
259 K190 CIP K 19 P.S. 190 PARAPETS/ROOFS/EXT MASONRY 6720000 false -73.89448660618348 40.66233878188243 590 SHEFFIELD AVENUE Brooklyn NY 11207
260 K191 CIP K 17 P.S. 191 SAFETY SYSTEMS 345900 false -73.92433266937152 40.671984269991356 1600 PARK PLACE Brooklyn NY 11233
261 X198 CIP X 12 P.S. 198 PLANYC BOILER CONVRSN/PLANYC CLIMATE CTRL 3794000 false -73.90058806585479 40.82868626889099 1180 TINTON AVENUE Bronx NY 10456
262 K199 CIP K 21 P.S. 199 FY11 RESO A LIBRARY 369000 false -73.96308897272426 40.61673348809886 1100 ELM AVENUE Brooklyn NY 11230
263 R020 CIP R 31 P.S. 20 EXT MASONRY/ROOFS/WINDOWS 3285000 false -74.13295576709373 40.63651173103697 161 PARK AVENUE Staten Island NY 10302
264 X020 CIP X 10 P.S. 20 ROOFS 1470000 false -73.87958395897564 40.869529034465444 3020 WEBSTER AVENUE BRONX NY 10467
265 K203 CIP K 22 P.S. 203 EXT MASONRY/ROOFS/PARAPETS/FLOOD ELMNTN 5668000 false -73.92773224974349 40.61636866748006 5101 AVENUE Brooklyn NY 11234
266 Q206 CIP Q 28 P.S. 206 FLOOD ELIMINATION 283000 false -73.86148084756303 40.72646491702238 61 02 98TH STREET REGO PARK NY 11374
267 M206 CIP M 4 P.S. 206 (TANDEM PS 112) EXT MASONRY/PARAPETS/FLD ELIMINATION/ROOFS/WALKWAY 5822870 false -73.93112623193574 40.79754733338499 508 120TH STREET New York NY 10035
268 R021 CIP R 31 P.S. 21 FLOORS 418000 false -74.14676832354822 40.63194814504947 168 HOOKER PLACE Staten Island NY 10303
269 X021 CIP X 11 P.S. 21 PARAPETS/EXT MASONRY/FLOOD ELIMINATION/ROOFS 5259000 false -73.86044891659131 40.88782430615607 715 225 STREET Bronx NY 10466
270 K214 CIP K 19 P.S. 214 EXT MASONRY/PARAPETS/FLOOD/WINDOWS/ROOFS 7654000 false -73.8631601400929 40.67649228343164 2944 PITKIN AVENUE Brooklyn NY 11208
271 Q215 CIP Q 27 P.S. 215 FY11 RESO A SCIENCE LAB UPGRADES 260000 false -73.75832418340367 40.59915376512268 535 BRIAR PLACE FAR ROCKAWAY NY 11691
272 K219 CIP K 18 P.S. 219 EXT MASONRY/PARAPETS/ROOFS 3079000 false -73.92291949545782 40.65925656671725 1060 CLARKSON AVENUE Brooklyn NY 11212
273 Q022 CIP Q 25 P.S. 22 FY10 RESO A NEW PLAYGROUND 180000 false -73.82147854789662 40.7512997969481 153 01 SANFORD AVENUE FLUSHING NY 11355
274 R022 CIP R 31 P.S. 22 LIBRARY UPGRADE 340000 false -74.15109445915424 40.62530363633885 1860 FOREST AVENUE Staten Island NY 10303
275 K225 CIP K 21 P.S. 225 ACCESSIBILITY/FIRE ALARM/ELECTRICAL SYSTEMS 4105450 false -73.95643350547934 40.5797910944251 1075 OCEAN VIEW AVENUE Brooklyn NY 11235
276 Q229 CIP Q 24 P.S. 229 SWB - MASONRY/ROOFS 3633000 false -73.9048471440804 40.74519376448069 67 25 51 ROAD WOODSIDE NY 11377
277 X229 CIP X 9 P.S. 229 ELEVATORS & ESCALATORS 1327150 false -73.92150462714196 40.85261854069672 275 HARLEM RIVER PARK BR Bronx NY 10453
278 X229 CIP X 9 P.S. 229 PLANYC BOILER/PLANYC CLIMATE CTRL 2910000 false -73.92150462714196 40.85261854069672 275 HARLEM RIVER PARK BR Bronx NY 10453
279 K230 CIP K 15 P.S. 230 ACCESSIBILITY 4392000 false -73.98088211473515 40.64501828504539 1 ALBEMARLE ROAD Brooklyn NY 11210
280 Q232 CIP Q 27 P.S. 232 FY11 RESO A SCIENCE LAB UPGRADES 384000 false -73.84496263981396 40.65817022817356 153 23 83 STREET HOWARD BEACH NY 11414
281 K236 CIP K 22 P.S. 236 EXT MASONRY/FLOOD ELIMINATION 1054000 false -73.92773224974349 40.61636866748006 6302 AVENUE Brooklyn NY 11234
282 K249 CIP K 17 P.S. 249 EXT MASONRY/ROOFS/PARAPETS 4474000 false -73.96609617601914 40.649842155595174 18 MARLBOROUGH ROAD Brooklyn NY 11226
283 K249 CIP K 17 P.S. 249 FY11 RESO A AUDITORIUM UPGRADE 198000 false -73.96609617601914 40.649842155595174 18 MARLBOROUGH ROAD Brooklyn NY 11226
284 K253 CIP K 21 P.S. 253 BOILER PLANT/CLIMATE CONTROL 4282800 false -73.96219337408164 40.579594157400855 601 OCEAN VIEW AVENUE Brooklyn NY 11235
285 Q816 CIP Q 27 P.S. 256 ANNEX WINDOWS/EXT MASONRY 5282000 false -73.85454217391299 40.576996863641924 445 BEACH 135 STREET QUEENS NY 11694
286 K026 CIP K 16 P.S. 26 PLANYC BOILER/PLANYC CLIMATE CTRL 3960000 false -73.93167037460694 40.69211086975316 1010 LAFAYETTE AVENUE Brooklyn NY 11221
287 Q026 CIP Q 26 P.S. 26 ELECTRICAL SYSTEM 594999 false -73.79462153515567 40.73987184371066 195 02 69 AVENUE FLUSHING NY 11365
288 K262 CIP K 16 P.S. 262 NEW SCIENCE DEMONSTRATION ROOM 534000 false -73.93085733477353 40.68321860795158 500 MACON STREET Brooklyn NY 11233
289 K273 CIP K 19 P.S. 273 EXT MASONRY/ROOFS/PARAPETS 5335000 false -73.87935692616207 40.65796581134507 923 JEROME STREET Brooklyn NY 11207
290 X027 CIP X 7 P.S. 277 (@ X027) SWB-ROOF/SWB-EXT MASONRY/WINDOWS/PARAPETS/ HEATING 15843000 false -73.91337206062776 40.813641430845045 519 ST ANNS AVENUE Bronx NY 10451
291 X279 CIP X 10 P.S. 279 FIRE ALARM UPGRADE 2998000 false -73.90550751626725 40.85444390420279 2100 WALTON AVE BRONX NY 10453
292 X028 CIP X 9 P.S. 28 EXTERIOR MASONRY/PARAPETS/FLOOD ELIMINATION 5016000 false -73.90357863607737 40.84796917302349 1861 ANTHONY AVENUE Bronx NY 10456
293 K284 CIP K 23 P.S. 284 SWB-PARAPET-MASONRY/EXTERIOR MASONRY 5680000 false -73.90818838446248 40.66735004908563 213 OSBORN STREET Brooklyn NY 11212
294 K289 CIP K 17 P.S. 289 WINDOW/CAFE MULTIPURPOSE RM UPG/MASONRY/PARAPET/PA 4440000 false -73.94240595654854 40.67477355898667 900 ST MARKS AVENUE Brooklyn NY 11213
295 R029 CIP R 31 P.S. 29 PARAPETS/EXT MASONRY/ROOFS 3826000 false -74.11613224214713 40.61361168930647 1581 VICTORY BLVD Staten Island NY 10314
296 K003 CIP K 13 P.S. 3 PARAPETS/EXT MASONRY/ROOF/PLAYGROUND REDEVELOPMENT 4820800 false -73.9554933572393 40.68262499957862 50 JEFFERSON AVENUE Brooklyn NY 11216
297 M003 CIP M 2 P.S. 3 FLOORS/INTERIOR SPACES 3824000 false -74.00641883360943 40.73261607852907 490 HUDSON STREET New York NY 10014
298 R003 CIP R 31 P.S. 3 LIGHTING FIXTURES 934104 false -74.21279962614892 40.52665926345466 80 GOFF AVENUE Staten Island NY 10309
299 K306 CIP K 19 P.S. 306 PLAYGROUND REDEVELOPMENT 1071501 false -73.88669548652338 40.65614802525013 970 VERMONT STREET Brooklyn NY 11207
300 K308 CIP K 16 P.S. 308 PAVED AREA-BLACKTOP & TCU 437000 false -73.93578222590314 40.6886393472372 616 QUINCY STREET Brooklyn NY 11221
301 X122 CIP X 10 P.S. 310 (@ X122) FY10 RESO A AUDITORIUM UPG 205000 false -73.90565533914132 40.873019134707036 260 KINGSBRIDGE RD Bronx NY 10463
302 K316 CIP K 17 P.S. 316 HOT WATER HEATER 375000 false -73.96025809844292 40.67448517044413 750 CLASSON AVENUE Brooklyn NY 11238
303 K032 CIP K 15 P.S. 32 FY11 RESO A LIBRARY UPGRADE 357960 false -73.99193273420018 40.680429275762485 317 HOYT STREET Brooklyn NY 11231
304 X032 CIP X 10 P.S. 32 VINYL FLR/BOILER RM/CLIMATE CTRL/HEAT PLANT 15839000 false -73.88593877891165 40.85208555646217 690 183 STREET Bronx NY 10458
305 K329 CIP K 21 P.S. 329 WINDOWS/ROOFS 4659000 false -73.99625853857127 40.5746069203897 2929 30 STREET Brooklyn NY 11212
306 X033 CIP X 10 P.S. 33 GUTTERS, DOWNSPOUTS & DRAINGAGE/FLOOD/EXT MASONRY 2965000 false -73.90165549892143 40.86194912850306 2424 JEROME AVENUE Bronx NY 10468
307 K034 CIP K 14 P.S. 34 ROOFS 1297000 false -73.94966946764082 40.72614326106391 131 NORMAN AVENUE Brooklyn NY 11222
308 Q034 CIP Q 29 P.S. 34 PLAYGROUND & TCU REMOVAL 1375500 false -73.74193729726841 40.721396964798146 104 12 SPRINGFIELD BLVD QUEENS VILLAGE NY 11428
309 M036 CIP M 5 P.S. 36 REINFORCE SUPPRT ELEMT/MASONRY/FLOOD/PARAPET/ ROOF 7179000 false -73.95760614504678 40.81034589186436 123 MORNINGSIDE DRIVE New York NY 10027
310 R036 CIP R 31 P.S. 36 PARAPETS 617000 false -74.18245006610681 40.54294395216458 255 IONIA AVENUE Staten Island NY 10312
311 Q037 CIP Q 29 P.S. 37 FLOOD ELMNTN 4627000 false -73.77530690169215 40.6769452621142 179 37 137 AVENUE JAMAICA NY 11434
312 K370 CIP K 21 P.S. 370 PLAYGROUND REDEVELOPMENT 2587000 false -73.96958337858405 40.577497294548174 3000 1 STREET Brooklyn NY 11224
313 K370 CIP K 21 P.S. 370 WINDOWS/FLOOD ELIMNTN/MASONRY/ROOFS/PARAPETS 6920000 false -73.96958337858405 40.577497294548174 3000 1 STREET Brooklyn NY 11224
314 R040 CIP R 31 P.S. 373 (SP ED) @R040 ROOFS/PARAPETS 824000 false -74.09531252948968 40.64071111953775 91 HENDERSON AVENUE Staten Island NY 10301
315 K384 CIP K 32 P.S. 384 LL 41/16 COMPLIANCE 275000 false -73.90500308262318 40.69009686200851 242 COOPER STREET Brooklyn NY 11221
316 R004 CIP R 31 P.S. 4 FY09 RESO A TECHNOLOGY 90290.18
317 Q040 CIP Q 28 P.S. 40 CEC REQUEST-TOILETS STUDENTS 889000
318 Q040 CIP Q 28 P.S. 40 EXTERIOR MASONRY/PARAPETS 2520000
319 Q040 CIP Q 28 P.S. 40 PLAYGROUND REDEVELOPMENT 1424537
320 M041 CIP M 2 P.S. 41 SWB-EXTERIOR MASONRY/WINDOWS/AUD. CEILING/PARAPETS 3447868 false -73.99904466974961 40.735686525332646 116 11 STREET New York NY 10011
321 Q041 CIP Q 26 P.S. 41 MASONRY SUPPORT REPAIR/PARAPETS 2564500 false -73.77481079967868 40.773606900238235 214 43 35 AVENUE BAYSIDE NY 11261
322 R041 CIP R 31 P.S. 41 FY10 RESO A PA SYSTEMS 448000 false -74.10928336025026 40.574024158045525 216 CLAWSON STREET Staten Island NY 10306
323 R045 CIP R 31 P.S. 45 TOILETS STUDENTS 999999 false -74.10718417740732 40.62863428073003 58 LAWRENCE AVENUE Staten Island NY 10310
324 R045 CIP R 31 P.S. 45 WATER PENETRATION 579900 false -74.10718417740732 40.62863428073003 58 LAWRENCE AVENUE Staten Island NY 10310
325 K046 CIP K 13 P.S. 46 SCIENCE DEMO ROOM 376999 false -73.9711875089949 40.694634881525445 100 CLERMONT AVENUE Brooklyn NY 11205
326 M046 CIP M 5 P.S. 46 SCIENCE DEMO LAB 512000
327 Q046 CIP Q 26 P.S. 46 CORRIDOR SPACES 290000 false -73.75790275560763 40.745924680379744 64 45 218TH STREET QUEENS NY 11364
328 K048 CIP K 20 P.S. 48 EXT MASONRY/PARAPETS/ROOFS 5315000
329 Q050 CIP Q 28 P.S. 50 SWB EXT MASONRY/PARAPETS/ROOFS 1900000 false -73.80979665579099 40.70119264912154 143 26 101 AVENUE JAMAICA NY 11435
330 R050 CIP R 31 P.S. 50 BOILER REPLACEMENT/CLIMATE CONTROL 3330000 false -74.12474473444865 40.561729222740695 200 ADELAIDE AVENUE Staten Island NY 10306
331 X050 CIP X 12 P.S. 50 FLOOD ELIMINATION 818000 false -73.88769223705626 40.83380386816254 1550 VYSE AVENUE Bronx NY 10460
332 M050 CIP M 4 P.S. 50 (UDC & ECF) PLANYC BOILER CONVERSION/PLANYC CLIMATE CONTROL 3174000 false -73.94222449721103 40.78556522081211 433 100 STREET New York NY 10029
333 Q051 CIP Q 27 P.S. 51 (ECC) EXTERIOR MASONRY 1023000 false -73.84031024991805 40.69637041236467 87 45 117TH STREET QUEENS NY 11418
334 Q052 CIP Q 29 P.S. 52 SWB EXT MASONRY 2700000 false -73.77530690169215 40.6769452621142 178 37 146 TERRACE SPRINGFIELD GARDENS NY 11434
335 R053 CIP R 31 P.S. 53 FENCING/PAVED AREAS-CONCRETE 675000 false -74.13710643405284 40.55253899268856 330 DURANT AVENUE Staten Island NY 10308
336 R054 CIP R 31 P.S. 54 PARAPETS/ROOFS/WINDOWS/EXT MASONRY 5847000 false -74.13792964309168 40.60321556338597 1060 WILLOWBROOK RD Staten Island NY 10314
337 Q055 CIP Q 28 P.S. 55 SWB-BULGING MASONRY/PARAPETS 4795000 false -73.82288833053201 40.68871379040917 131 10 97 AVENUE RICHMOND HILL NY 11419
338 R055 CIP R 31 P.S. 55 ROOFS/CEC REQUEST-MASONRY/FLOOD ELMNTN/PARAPETS 1890000 false -74.16332659953605 40.53686781464157 54 OSBORNE STREET Staten Island NY 10312
339 X055 CIP X 9 P.S. 55 EXTERIOR MASONRY/PARAPETS 1285000 false -73.90461113077222 40.836276563944345 450 SAINT PAUL'S PLACE Bronx NY 10456
340 K056 CIP K 13 P.S. 56 PLANYC CLIMATE/BOILER CONTROL 5240000 false -73.960643681102 40.68503684353989 170 GATES AVENUE Brooklyn NY 11238
341 R057 CIP R 31 P.S. 57 PLANYC PLAYGROUND 613715.9 false -74.08283106498078 40.61136129612238 140 PALMA DRIVE Staten Island NY 10304
342 K006 CIP K 17 P.S. 6 (PS 600B) BLDG MANAGEMENT SYSTEM 2269000
343 K006 CIP K 17 P.S. 6 (PS 600B) EXT MASONRY/ROOFS 773000
344 X060 CIP X 8 P.S. 60 FLOOD/EXT MASONRY/CEC REQUEST-PARAPET/ROOFS/WINDOW 14619000 false -73.89313106784448 40.82552621616202 888 REV J A POLITE AVE Bronx NY 10459
345 X061 CIP X 12 P.S. 61 FIRE ALARM 349119 false -73.89295310872916 40.836569959473785 1550 CROTONA PARK Bronx NY 10460
346 X061 CIP X 12 P.S. 61 IP SURVEILLANCE CAMERAS 1528000 false -73.89295310872916 40.836569959473785 1550 CROTONA PARK Bronx NY 10460
347 X064 CIP X 9 P.S. 64 BATHROOMS 4TH & 5TH FLR 508499 false -73.91558081775857 40.8401115358764 1425 WALTON AVENUE Bronx NY 10452
348 Q066 CIP Q 27 P.S. 66 FLOOD ELIMINATION/EXT MASONRY/PARAPETS 1110000 false -73.84031024991805 40.69637041236467 85 11 102 STREET RICHMOND HILL NY 11418
349 M066 CIP M 2 P.S. 66 (RICHARD R GREEN) CAFE MULTIPURPOSE ROOM 482000 false -74.02858656018857 40.62102637693336 421 88 STREET New York NY 10028
350 X068 CIP X 11 P.S. 68 ELEVATORS & ESCALATORS 688000 false -73.83837769297637 40.89141479468151 4011 MONTICELLO AVENUE Bronx NY 10466
351 R069 CIP R 31 P.S. 69 FENCING 234000 false -74.15650379993006 40.59169714382341 144 KEATING PLACE Staten Island NY 10314
352 X007 CIP X 10 P.S. 7 ROOFS/EXT MASONRY/PARAPETS 4700000 false -73.90547390792568 40.881013909978904 3201 KINGSBRIDGE AVENUE Bronx NY 10463
353 Q071 CIP Q 24 P.S. 71 FLOOD ELIMINATION 408990 false -73.88334858436963 40.70122489161548 62 85 FOREST AVENUE RIDGEWOOD NY 11385
354 X072 CIP X 8 P.S. 72 BATHROOM 668000 false -73.81850425419442 40.822539080023574 2951 DEWEY AVENUE Bronx NY 10465
355 K722 CIP K 21 P.S. 721 OTC TILTED FIELD LIGHTING 1396800 false -73.97331147204676 40.596939623165156 64 AVENUE Brooklyn NY 11223
356 M641 CIP M 2 P.S. 721 OTC SP ED FLOOD ELIMINATION 1897000 false -74.00542114697957 40.72862785368122 250 HOUSTON ST MANHATTAN NY 10014
357 K073 CIP K 23 P.S. 73 SWB EXT MSNRY/SWB PARAPETS/SWB FLOOD/ROOFS 3084000 false -73.91089377023927 40.68032732647815 251 MCDOUGAL STREET Brooklyn NY 11233
358 X075 CIP X 8 P.S. 75 ROOFS/EXT MASONRY 2549000 false -73.88942113898915 40.822818392634325 984 FAILE STREET Bronx NY 10459
359 X155 CIP X 7 P.S. 754 (@X155) CAFE/MULTIPURPOSE RM UPGRADE/FLOOD ELIMINATION 1230000 false -73.90975689502312 40.81117582303449 470 JACKSON AVENUE BRONX NY 10455
360 X155 CIP X 7 P.S. 754 (@X155) FY11 REOS A LIBRARY UPGRADE 299155 false -73.90975689502312 40.81117582303449 470 JACKSON AVENUE BRONX NY 10455
361 Q076 CIP Q 30 P.S. 76 EXTERIOR MASONRY/PARAPETS 2284875 false -73.91327185810974 40.76286893025696 36 36 10 STREET QUEENS NY 11103
362 X076 CIP X 11 P.S. 76 MASONRY/PARAPETS/FLOOD ELMNTN/ROOFS 4042000 false -73.8614028579785 40.86957454109854 900 ADEE AVENUE Bronx NY 10469
363 X078 CIP X 11 P.S. 78 AUDITORIUM UPGRADE/STUDENT TOILETS 715000 false -73.8513380848076 40.87847023359842 1400 NEEDHAM AVENUE Bronx NY 10469
364 Q079 CIP Q 25 P.S. 79 ELEC SYSTEMS 258100 false -73.81123206101074 40.78628404147537 147 27 15 DRIVE WHITESTONE NY 11357
365 R008 CIP R 31 P.S. 8 ELEC SYSTEM 790000 false -74.1517569152093 40.54764073027023 112 LINDENWOOD ROAD Staten Island NY 10308
366 R880 CIP R 31 P.S. 80 (PETRIDES BLDG B) WINDOWS/EXT MASONRY 3228000
367 Q081 CIP Q 24 P.S. 81 FLOOD ELIM/STRUCTURAL:FLOOR SYS/EXT MASONRY 1274800 false -73.91225035614077 40.70373293561221 559 CYPRESS AVENUE RIDGEWOOD NY 11237
368 X081 CIP X 10 P.S. 81 FLOOD ELIMINATION 474000 false -73.90520839316682 40.903559546831026 5550 RIVERDALE AVENUE Bronx NY 10471
369 Q848 CIP Q 24 P.S. 81 ANNEX (@Q848) FLOOD ELIMINATION/EXT MASONRY 2390270
370 Q811 CIP Q 26 P.S. 811 (OL 187 - CMCH) LL 41/16 COMPLIANCE 954000 false -73.73430017711144 40.759074216601846 61 25 MARATHON PKWY QUEENS NY 11362
371 Q811 CIP Q 26 P.S. 811 (OL 187 - CMCH) LOW VOLTAGE 560000 false -73.73430017711144 40.759074216601846 61 25 MARATHON PKWY QUEENS NY 11362
372 M841 CIP M 3 P.S. 811(@ M841) WORK REQUIRED TO OBTAIN C OF O 1880750 false -73.96653900057436 40.78362556816552 466 END AVENUE NEW YORK NY 10024
373 Q082 CIP Q 28 P.S. 82 WATER PENETRATION 1120000 false -73.80979665579099 40.70119264912154 88 02 144 STREET QUEENS NY 11435
374 X083 CIP X 11 P.S. 83 ACCESSIBILITY 3377000 false -73.85933122663833 40.849332468676785 950 RHINELANDER AVENUE Bronx NY 10462
375 Q085 CIP Q 30 P.S. 85 FLOOD ELMNTN/ROOFS/EXT MASONRY/PARAPETS 3111000 false -73.90960650023976 40.780092072491186 23 70 31 STREET QUEENS NY 11105
376 X085 CIP X 10 P.S. 85 RETAINING WALL 1596000 false -73.89472052099663 40.859331900138066 2400 MARION AVENUE Bronx NY 10458
377 K086 CIP K 32 P.S. 86 FLOOD ELMNTN/EXT MASONRY 4269000 false -73.91749723727719 40.7007452458598 220 IRVING AVENUE Brooklyn NY 11237
378 X086 CIP X 10 P.S. 86 ELEVATORS & ESCALATORS 747400 false -73.89880422371779 40.869715575827065 2756 RESERVOIR AVENUE Bronx NY 10468
379 K009 CIP K 13 P.S. 9 PAVED AREA - BLACKTOP 974000
380 X009 CIP X 10 P.S. 9 (OLD 115) ACCESSIBILITY 6177000 false -73.89936166242526 40.8571875830873 230 183 STREET Bronx NY 10458
381 Q090 CIP Q 27 P.S. 90 ELEC SYSTEMS 778000 false -73.84031024991805 40.69637041236467 86 50 109 STREET RICHMOND HILL NY 11418
382 Q090 CIP Q 27 P.S. 90 SWB - EMERGENCY MASONRY REPAIRS/PARAPETS 3769000 false -73.84031024991805 40.69637041236467 86 50 109 STREET RICHMOND HILL NY 11418
383 X090 CIP X 9 P.S. 90 EXTERIOR MASONRY/RETAINING WALLS 1857000 false -73.91794566527413 40.83197402670032 1116 SHERIDAN AVENUE Bronx NY 10456
384 K093 CIP K 13 P.S. 93 FLOORS 1748375 false -73.94682098403624 40.679147761017056 31 NEW YORK AVENUE Brooklyn NY 11216
385 K094 CIP K 15 P.S. 94 PLANYC PLAYGROUND 264500 false -74.0082060957207 40.64372817395559 5010 6TH AVENUE Brooklyn NY 11220
386 K095 CIP K 21 P.S. 95 EXT MASONRY/WINDOWS 3373000 false -73.97512954825021 40.595683557953876 345 VAN SICKLEN STREET Brooklyn NY 11223
387 M271 CIP M 2 P.S./I.S. 217 ROOSEVELT ISLAND ROOFS/EXT MASONRY/WINDOWS/PARAPETS 8444000 false -73.94703392787746 40.76494453865442 645 MAIN STREET New York NY 10044
388 M495 CIP M 4 PARK EAST ALT HS FY10 RESO A SCIENCE LAB 759354 false -73.94403228106489 40.79161072055837 230 34 EAST 105 STREET New York NY 10029
389 M495 CIP M 4 PARK EAST ALT HS WATER DAMAGE & MASONRY/ROOF/PARAPETS/WINDOWS 2887000 false -73.94403228106489 40.79161072055837 230 34 EAST 105 STREET New York NY 10029
390 Q102 CAP Q 24 PS 102 Addition Addition 56222000 false -73.87835115518163 40.73871040256307 55 24 Van Horn St Elmhurst NY 11373
391 Q013 CAP Q 24 PS 13 Addition Addition 41250000 false -73.87835115518163 40.73871040256307 55 01 94th St Elmhurst NY 11373
392 M130 CIP M 2 PS 130 SWB-WINDOWS 1327000 false -73.99859121725036 40.7186139475248 143 BAXTER STREET New York NY 10013
393 K317 CAP K 13 PS 133 New 66224000 false -73.98070466529857 40.68047819552629 610 Baltic St Brooklyn NY 11217
394 Q143 CIP Q 24 PS 143 FY10 RESO A PA SYSTEM 189000 false -73.85304068857687 40.749678220373596 34 74 113 STREET CORONA NY 11368
395 K160 CAP K 20 PS 160 Annex Addition 38772000 false -73.99911127943953 40.637367859169615 5105 Fort Hamilton Pkwy Brooklyn NY 11219
396 X136 CIP X 12 PS 186 COMPUTER LAB FLOOD ELIMINATION/EXTERIOR RAMPS & CANOPIES 968700 false -73.89748338090764 40.8318681052202 750 JENNINGS STREET Bronx NY 10459
397 Q196 CAP Q 28 PS 196 Addition Addition 29800000 false -73.84628429608335 40.720707263029794 71 25 113th St Forest Hills NY 11375
398 K264 CAP K 20 PS 264 New 39814903 false -74.02907223284222 40.62112765715576 8818 4th Ave Brooklyn NY 11209
399 Q280 CAP Q 30 PS 280 Lease 6230000 false -73.88361254528269 40.75163073936716 34 20 94th St Jackson Heights NY 11372
400 Q280 CAP Q 30 PS 280 Lease 7250000 false -73.88361254528269 40.75163073936716 34 20 94th St Jackson Heights NY 11372
401 Q029 CAP Q 25 PS 29 Addition Addition 20180000 false -73.84181070040347 40.7849280967543 125 10 23rd Ave College Point NY 11356
402 Q290 CIP Q 24 PS 290 DEMOLITION FOR PS 290 3370000 false -73.88334858436963 40.70122489161548 55 20 METROPOLITAN AVE RIDGEWOOD NY 11385
403 X292 CAP X 11 PS 292 New 31927000 false -73.86385184249058 40.85441144971648 800 Lydig Ave Bronx NY 10462
404 K310 CAP K 20 PS 310 New 26400000 false -74.00762713591367 40.632432204151364 942 62nd St Brooklyn NY 11219
405 K331 CAP K 20 PS 331 New 51133300 false -74.02392108137985 40.633713521609366 7002 4th Ave Brooklyn NY 11209
406 Q198 CIP Q 27 PS 333 @ 198 SCIENCE DEMO ROOM UPGRADE 670000 false -73.79540208463845 40.593133885620375 3 65 BEACH 56 STREET QUEENS NY 11692
407 Q042 CAP Q 27 PS 42 Addition Addition 43065000 false -73.79529882397365 40.59475372321819 488 Beach 66th St Arverne NY 11692
408 Q043 CIP Q 27 PS 43 FIRE ALARM SYSTEM 1982000 false -73.76182654029463 40.594515128003 160 BEACH 29TH STREET ROCKAWAY NY 11691
409 M338 CAP M 2 PS 51 New 54730000 false -73.99547864190042 40.761366217679694 525 44th St New York NY 10036
410 R071 CAP R 31 PS 71 New 53450000 false -74.09118595249046 40.60412964758937 1050 Targee St Staten Island NY 10304
411 K008 CAP K 13 PS 8 Addition Addition 21230000 false -73.9932378538064 40.700668802148385 37 Hicks St Brooklyn NY 11201
412 M916 CAP M 5 PS 916 Lease 0 false -73.95327141286555 40.81245030541294 168 Morningside Ave New York NY 10027
413 X177 CAP X 10 PS/IS 177 New 48888000 false -73.8752514350975 40.87277450072955 3177 Webster Ave Bronx NY 10467
414 Q277 CAP Q 28 PS/IS 277 New 47135000 false -73.79282099978928 40.71311535449007 153 27 88th Ave Jamaica NY 11432
415 M281 CAP M 2 PS/IS 281 New 47580000 false -73.97273509303172 40.74436150165521 425 35th St New York NY 10016
416 Q312 CAP Q 30 PS/IS 312 New 47820000 false -73.93866902925225 40.74570244980828 46 08 5th St Long Island City NY 11101
417 X784 CAP X 11 PS/IS 784 New 0 false -73.84367515955307 40.85710649548991 1500 Pelham Pkwy Bronx NY 10461
418 K990 CAP K 15 Pave Charter School New 25933333 false -74.00338737261256 40.67592711246962 732 Henry St Brooklyn NY 11231
419 Q475 CIP Q 27 RICHMOND HILL HS SWB - EXT MASONRY/WINDOWS/ROOFS 9333000 false -73.84031024991805 40.69637041236467 89 30 114 STREET QUEENS NY 11418
420 K655 CIP K 15 SARAH J HALE VOCATIONAL HS ACCESSIBILITY/SAFETY 2450000 false -73.98061564042008 40.68371105568558 345 DEAN STREET Brooklyn NY 11217
421 K218 CIP K 19 SCH FOR CLASSICS:ACAD OF THINK NEW SCIENCE LAB SUITE 845000 false -73.8742292684109 40.67070199017694 370 FOUNTAIN AVENUE Brooklyn NY 11208
422 M660 CIP M 2 SCHOOL OF THE FUTURE @MD BACON FLOOD ELIMINATION 618000 false -73.98552809234425 40.73900208799275 127 22 STREET NEW YORK NY 10010
423 Q751 CIP Q 30 SCHOOL SAFETY PARKING LOT SCHOOL SAFETY PARKING LOT 2648000 false -73.93866902925225 40.74570244980828 43 30 DUTCH KILLS STREET LONG ISLAND CITY NY 11101
424 M445 CIP M 2 SEWARD PARK HS CAFETERIA MULTIPURPOSE RM UPG 929000 false -73.98959502962896 40.716852373698316 350 GRAND STREET New York NY 10002
425 K515 CIP K 18 SOUTH SHORE HS ROOFS/EXT MASONRY/PARAPETS 18887000 false -73.91781691770764 40.63268510415105 6565 FLATLANDS AVENUE BROOKLYN NY 11236
426 M477 CIP M 2 STUYVESANT HS (NEW) EXT MASONRY/ROOFS 7752000
427 X240 CAP X 78 Settlement Housing PS/IS/HS New 83300000 false -73.91619367568833 40.84236125885491 1501 Jerome Ave Bronx NY 10452
428 X988 CAP X 78 Suspension Center - Bronx Lease 7335500 false -73.89020247936504 40.81655388322442 1231 Lafayette Ave Bronx NY 10474
429 X410 CIP X 9 TAFT HS PLANYC BOILER CONVERSION/PLANYC CLIMATE CTRL 10174000 false -73.9108816444482 40.84038797720987 240 172 STREET BRONX NY 10457
430 K485 CIP K 20 TELECOM ARTS & TECHNOLOGY H.S. EXT MASONRY 4138000 false -74.02385245520922 40.63726462862678 350 67TH ST Brooklyn NY 11220
431 X435 CIP X 10 THEODORE ROOSEVELT H.S. FLOORS 1593000 false -73.88817875264016 40.85990614640288 500 FORDHAM ROAD Bronx NY 10458
432 X435 CIP X 10 THEODORE ROOSEVELT H.S. SWB - COPPER SIDING 1500000 false -73.88817875264016 40.85990614640288 500 FORDHAM ROAD Bronx NY 10458
433 R455 CIP R 31 TOTTENVILLE H.S. FY10 RESO A AF REPLACEMENT 1452882 false -74.19217697672369 40.52826198723337 100 LUTEN AVENUE Staten Island NY 10312
434 R455 CIP R 31 TOTTENVILLE HS WINDOWS 7960000 false -74.19217697672369 40.52826198723337 100 LUTEN AVENUE Staten Island NY 10312
435 M971 CAP M 2 The Spruce Street Educational New 34146385.86 false -74.00596371272646 40.71174136432668 12 Spruce St New York NY 10038
436 M445 CIP M 2 URBAN ASSEMBLY ACADEMY GIRLS SHOWER ROOM 1014300 false -73.98959502962896 40.716852373698316 350 GRAND STREET New York NY 10002
437 R460 CIP R 31 WAGNER HS FY06 RESO A ATHLETIC FIELD 5799000 false -74.12366587081469 40.59771088831585 1200 MANOR ROAD Staten Island NY 10314
438 K805 CIP K 13 WATER'S EDGE EDUCATIONAL COMPL ELEVATOR UPGRADE 764398 false -73.98496543482732 40.69721149151847 49 FLATBUSH AVE EXTENSION BROOKLYN NY 11201
439 Q680 CIP Q 28 YOUNG WOMENS' LEADERSHIP SCHOO IP SURVEILLANCE CAMERAS 1047000 false -73.7875740339145 40.698104881734935 150 91 87TH ROAD JAMAICA NY 11433

View File

@ -0,0 +1,115 @@
"_7" age _3 _4 _5 borough _6 _1 _2
546426 0-4 545778 547336 542426 NYC Total 540523 521990 535209
522152 5-9 516006 527690 529397 NYC Total 524170 477039 501640
504650 10-14 482453 497610 508958 NYC Total 509963 471909 457567
546750 15-19 492532 519298 535024 NYC Total 546062 539844 505783
657403 20-24 606203 591683 625253 NYC Total 643728 647483 646075
762757 25-29 763956 715824 698195 NYC Total 740437 736105 770396
715486 30-34 743916 740268 693684 NYC Total 675497 667657 707726
621899 35-39 649594 684249 682964 NYC Total 639237 592299 611239
596493 40-44 569628 606185 638148 NYC Total 637517 571825 550097
600514 45-49 517668 537516 571723 NYC Total 600792 570273 535998
584164 50-54 520597 504322 523815 NYC Total 556586 546204 552074
506390 55-59 501239 474319 459574 NYC Total 477052 479661 493997
450353 60-64 464187 472842 447688 NYC Total 434046 418127 449279
370119 65-69 380864 395585 403234 NYC Total 382256 299533 353131
331544 70-74 304072 330132 342704 NYC Total 350069 236401 256786
289778 75-79 210236 251182 272561 NYC Total 284051 179677 192687
209246 80-84 139658 154606 184243 NYC Total 201409 143726 129798
209021 85+ 142385 149319 161436 NYC Total 187608 142871 147632
9025145 Total 8550972 8699966 8821027 NYC Total 8931003 8242624 8397114
112571 0-4 109972 111127 110880 Bronx 110982 103144 106770
110942 5-9 105775 109843 111137 Bronx 110893 98664 102008
105010 10-14 95703 100081 104065 Bronx 105297 99159 92423
113100 15-19 98987 103114 107753 Bronx 111879 115662 105751
121256 20-24 113827 107423 111941 Bronx 116901 112897 124181
121249 25-29 127995 117887 111171 Bronx 116011 105710 115853
110963 30-34 109797 122434 112812 Bronx 106338 97824 99969
100424 35-39 93530 103582 115705 Bronx 106610 91016 91397
102576 40-44 87217 89976 99685 Bronx 111331 96073 86719
108171 45-49 83496 84693 87465 Bronx 96914 97569 92337
94910 50-54 89495 81571 82859 Bronx 85647 88029 94470
78521 55-59 85632 81892 74718 Bronx 76007 72545 79637
71076 60-64 73506 79872 76473 Bronx 69889 60934 66842
60560 65-69 56988 63425 69011 Bronx 66253 45349 51894
56320 70-74 43380 48249 53737 Bronx 58687 34794 37890
49153 75-79 31168 36192 40250 Bronx 45066 26199 28617
32582 80-84 20292 22515 26053 Bronx 29204 19501 18633
29861 85+ 20028 21399 23283 Bronx 26583 20039 20334
1579245 Total 1446788 1485275 1518998 Bronx 1550492 1385108 1415725
186465 0-4 186886 184273 182152 Brooklyn 182974 180353 186547
178081 5-9 180252 182013 179508 Brooklyn 177289 162302 173890
171265 10-14 166761 174242 175992 Brooklyn 173419 159404 155314
178066 15-19 158561 171398 179052 Brooklyn 180690 173672 162365
201457 20-24 180072 177078 191335 Brooklyn 199658 199153 192162
231531 25-29 221421 208706 205220 Brooklyn 221800 226516 229152
216025 30-34 221544 215764 203416 Brooklyn 199873 206266 218546
189362 35-39 205525 210019 204593 Brooklyn 192741 180888 193533
182148 40-44 181452 194294 198551 Brooklyn 193332 166998 169246
183817 45-49 159615 172580 184841 Brooklyn 188774 167402 157171
184707 50-54 152501 156182 168925 Brooklyn 180913 163403 162090
163132 55-59 144647 137394 140742 Brooklyn 152292 145029 145484
145624 60-64 137606 138164 131258 Brooklyn 134559 126915 136873
113613 65-69 113940 115961 116468 Brooklyn 110838 85190 105356
99000 70-74 92570 101424 103251 Brooklyn 104025 70864 74742
86725 75-79 61041 76743 84089 Brooklyn 86085 52908 57753
63958 80-84 41717 45047 56472 Brooklyn 62490 43509 38183
65549 85+ 42341 44964 48144 Brooklyn 57595 42139 44437
2840525 Total 2648452 2706246 2754009 Brooklyn 2799347 2552911 2602844
76687 0-4 82096 83225 80452 Manhattan 77272 76579 78283
66801 5-9 68243 72011 72942 Manhattan 69971 61323 65822
63630 10-14 60331 62902 66322 Manhattan 66700 58229 55455
80224 15-19 69487 74662 77190 Manhattan 80181 77462 71544
132854 20-24 118301 114974 123950 Manhattan 127980 141558 127856
179510 25-29 180070 165213 159757 Manhattan 173578 186733 200507
163317 30-34 190129 171652 157176 Manhattan 150919 154501 174702
125524 35-39 146480 160424 144721 Manhattan 131503 122916 127686
112875 40-44 110439 127417 139365 Manhattan 124857 111228 104852
111904 45-49 94732 100358 115597 Manhattan 125533 104156 99083
118851 50-54 94242 90711 96020 Manhattan 109985 98813 97815
99314 55-59 88669 86013 82751 Manhattan 87091 92648 88427
82682 60-64 84257 85058 82434 Manhattan 78940 85574 87219
68861 65-69 76334 74352 74940 Manhattan 72279 65344 73878
62794 70-74 64227 67044 65211 Manhattan 65475 50025 55973
55376 75-79 47159 54850 57160 Manhattan 55508 38366 41521
42018 80-84 31115 35967 41717 Manhattan 43555 30031 28300
48395 85+ 31971 34741 39015 Manhattan 44965 30387 31774
1691617 Total 1638282 1661574 1676720 Manhattan 1686292 1585873 1610697
142459 0-4 138141 139574 139958 Queens 140733 133575 135493
136512 5-9 132342 133933 135413 Queens 135764 124735 130325
133813 10-14 129351 130384 132038 Queens 133473 124320 123672
143734 15-19 134198 139314 140488 Queens 142218 140119 134759
170836 20-24 162692 161057 167330 Queens 168741 162417 169044
199281 25-29 200730 191983 190144 Queens 197605 187158 192627
192639 30-34 189015 195559 187152 Queens 185352 179207 183463
173523 35-39 172928 176806 183062 Queens 175208 166007 168718
165416 40-44 160306 163144 166859 Queens 172806 163368 157522
163104 45-49 149550 151164 153981 Queens 157484 165141 154894
152805 50-54 151019 144896 146607 Queens 149458 160216 160818
136566 55-59 147504 137653 132201 Queens 133927 138186 146776
124901 60-64 137219 137155 128104 Queens 123251 117334 129053
102706 65-69 107634 113855 113909 Queens 106712 84526 97766
90365 70-74 82663 90661 95957 Queens 96418 67211 71448
77671 75-79 57287 66138 72554 Queens 77288 51609 53828
55423 80-84 38275 40828 47012 Queens 52089 42422 36701
50895 85+ 39441 39327 40782 Queens 45826 42451 42582
2412649 Total 2330295 2353431 2373551 Queens 2394353 2250002 2289489
28244 0-4 28683 29137 28984 Staten Island 28562 28339 28116
29816 5-9 29394 29890 30397 Staten Island 30253 30015 29595
30932 10-14 30307 30001 30541 Staten Island 31074 30797 30703
31626 15-19 31299 30810 30541 Staten Island 31094 32929 31364
31000 20-24 31311 31151 30697 Staten Island 30448 31458 32832
31186 25-29 33740 32035 31903 Staten Island 31443 29988 32257
32542 30-34 33431 34859 33128 Staten Island 33015 29859 31046
33066 35-39 31131 33418 34883 Staten Island 33175 31472 29905
33478 40-44 30214 31354 33688 Staten Island 35191 34158 31758
33518 45-49 30275 28721 29839 Staten Island 32087 36005 32513
32891 50-54 33340 30962 29404 Staten Island 30583 35743 36881
28857 55-59 34787 31367 29162 Staten Island 27735 31253 33673
26070 60-64 31599 32593 29419 Staten Island 27407 27370 29292
24379 65-69 25968 27992 28906 Staten Island 26174 19124 24237
23065 70-74 21232 22754 24548 Staten Island 25464 13507 16733
20853 75-79 13581 17259 18508 Staten Island 20104 10595 10968
15265 80-84 8259 10249 12989 Staten Island 14071 8263 7981
14321 85+ 8604 8888 10212 Staten Island 12639 7855 8505
501109 Total 487155 493440 497749 Staten Island 500519 468730 478359
1 _7 age _3 _4 _5 borough _6 _1 _2
2 546426 0-4 545778 547336 542426 NYC Total 540523 521990 535209
3 522152 5-9 516006 527690 529397 NYC Total 524170 477039 501640
4 504650 10-14 482453 497610 508958 NYC Total 509963 471909 457567
5 546750 15-19 492532 519298 535024 NYC Total 546062 539844 505783
6 657403 20-24 606203 591683 625253 NYC Total 643728 647483 646075
7 762757 25-29 763956 715824 698195 NYC Total 740437 736105 770396
8 715486 30-34 743916 740268 693684 NYC Total 675497 667657 707726
9 621899 35-39 649594 684249 682964 NYC Total 639237 592299 611239
10 596493 40-44 569628 606185 638148 NYC Total 637517 571825 550097
11 600514 45-49 517668 537516 571723 NYC Total 600792 570273 535998
12 584164 50-54 520597 504322 523815 NYC Total 556586 546204 552074
13 506390 55-59 501239 474319 459574 NYC Total 477052 479661 493997
14 450353 60-64 464187 472842 447688 NYC Total 434046 418127 449279
15 370119 65-69 380864 395585 403234 NYC Total 382256 299533 353131
16 331544 70-74 304072 330132 342704 NYC Total 350069 236401 256786
17 289778 75-79 210236 251182 272561 NYC Total 284051 179677 192687
18 209246 80-84 139658 154606 184243 NYC Total 201409 143726 129798
19 209021 85+ 142385 149319 161436 NYC Total 187608 142871 147632
20 9025145 Total 8550972 8699966 8821027 NYC Total 8931003 8242624 8397114
21 112571 0-4 109972 111127 110880 Bronx 110982 103144 106770
22 110942 5-9 105775 109843 111137 Bronx 110893 98664 102008
23 105010 10-14 95703 100081 104065 Bronx 105297 99159 92423
24 113100 15-19 98987 103114 107753 Bronx 111879 115662 105751
25 121256 20-24 113827 107423 111941 Bronx 116901 112897 124181
26 121249 25-29 127995 117887 111171 Bronx 116011 105710 115853
27 110963 30-34 109797 122434 112812 Bronx 106338 97824 99969
28 100424 35-39 93530 103582 115705 Bronx 106610 91016 91397
29 102576 40-44 87217 89976 99685 Bronx 111331 96073 86719
30 108171 45-49 83496 84693 87465 Bronx 96914 97569 92337
31 94910 50-54 89495 81571 82859 Bronx 85647 88029 94470
32 78521 55-59 85632 81892 74718 Bronx 76007 72545 79637
33 71076 60-64 73506 79872 76473 Bronx 69889 60934 66842
34 60560 65-69 56988 63425 69011 Bronx 66253 45349 51894
35 56320 70-74 43380 48249 53737 Bronx 58687 34794 37890
36 49153 75-79 31168 36192 40250 Bronx 45066 26199 28617
37 32582 80-84 20292 22515 26053 Bronx 29204 19501 18633
38 29861 85+ 20028 21399 23283 Bronx 26583 20039 20334
39 1579245 Total 1446788 1485275 1518998 Bronx 1550492 1385108 1415725
40 186465 0-4 186886 184273 182152 Brooklyn 182974 180353 186547
41 178081 5-9 180252 182013 179508 Brooklyn 177289 162302 173890
42 171265 10-14 166761 174242 175992 Brooklyn 173419 159404 155314
43 178066 15-19 158561 171398 179052 Brooklyn 180690 173672 162365
44 201457 20-24 180072 177078 191335 Brooklyn 199658 199153 192162
45 231531 25-29 221421 208706 205220 Brooklyn 221800 226516 229152
46 216025 30-34 221544 215764 203416 Brooklyn 199873 206266 218546
47 189362 35-39 205525 210019 204593 Brooklyn 192741 180888 193533
48 182148 40-44 181452 194294 198551 Brooklyn 193332 166998 169246
49 183817 45-49 159615 172580 184841 Brooklyn 188774 167402 157171
50 184707 50-54 152501 156182 168925 Brooklyn 180913 163403 162090
51 163132 55-59 144647 137394 140742 Brooklyn 152292 145029 145484
52 145624 60-64 137606 138164 131258 Brooklyn 134559 126915 136873
53 113613 65-69 113940 115961 116468 Brooklyn 110838 85190 105356
54 99000 70-74 92570 101424 103251 Brooklyn 104025 70864 74742
55 86725 75-79 61041 76743 84089 Brooklyn 86085 52908 57753
56 63958 80-84 41717 45047 56472 Brooklyn 62490 43509 38183
57 65549 85+ 42341 44964 48144 Brooklyn 57595 42139 44437
58 2840525 Total 2648452 2706246 2754009 Brooklyn 2799347 2552911 2602844
59 76687 0-4 82096 83225 80452 Manhattan 77272 76579 78283
60 66801 5-9 68243 72011 72942 Manhattan 69971 61323 65822
61 63630 10-14 60331 62902 66322 Manhattan 66700 58229 55455
62 80224 15-19 69487 74662 77190 Manhattan 80181 77462 71544
63 132854 20-24 118301 114974 123950 Manhattan 127980 141558 127856
64 179510 25-29 180070 165213 159757 Manhattan 173578 186733 200507
65 163317 30-34 190129 171652 157176 Manhattan 150919 154501 174702
66 125524 35-39 146480 160424 144721 Manhattan 131503 122916 127686
67 112875 40-44 110439 127417 139365 Manhattan 124857 111228 104852
68 111904 45-49 94732 100358 115597 Manhattan 125533 104156 99083
69 118851 50-54 94242 90711 96020 Manhattan 109985 98813 97815
70 99314 55-59 88669 86013 82751 Manhattan 87091 92648 88427
71 82682 60-64 84257 85058 82434 Manhattan 78940 85574 87219
72 68861 65-69 76334 74352 74940 Manhattan 72279 65344 73878
73 62794 70-74 64227 67044 65211 Manhattan 65475 50025 55973
74 55376 75-79 47159 54850 57160 Manhattan 55508 38366 41521
75 42018 80-84 31115 35967 41717 Manhattan 43555 30031 28300
76 48395 85+ 31971 34741 39015 Manhattan 44965 30387 31774
77 1691617 Total 1638282 1661574 1676720 Manhattan 1686292 1585873 1610697
78 142459 0-4 138141 139574 139958 Queens 140733 133575 135493
79 136512 5-9 132342 133933 135413 Queens 135764 124735 130325
80 133813 10-14 129351 130384 132038 Queens 133473 124320 123672
81 143734 15-19 134198 139314 140488 Queens 142218 140119 134759
82 170836 20-24 162692 161057 167330 Queens 168741 162417 169044
83 199281 25-29 200730 191983 190144 Queens 197605 187158 192627
84 192639 30-34 189015 195559 187152 Queens 185352 179207 183463
85 173523 35-39 172928 176806 183062 Queens 175208 166007 168718
86 165416 40-44 160306 163144 166859 Queens 172806 163368 157522
87 163104 45-49 149550 151164 153981 Queens 157484 165141 154894
88 152805 50-54 151019 144896 146607 Queens 149458 160216 160818
89 136566 55-59 147504 137653 132201 Queens 133927 138186 146776
90 124901 60-64 137219 137155 128104 Queens 123251 117334 129053
91 102706 65-69 107634 113855 113909 Queens 106712 84526 97766
92 90365 70-74 82663 90661 95957 Queens 96418 67211 71448
93 77671 75-79 57287 66138 72554 Queens 77288 51609 53828
94 55423 80-84 38275 40828 47012 Queens 52089 42422 36701
95 50895 85+ 39441 39327 40782 Queens 45826 42451 42582
96 2412649 Total 2330295 2353431 2373551 Queens 2394353 2250002 2289489
97 28244 0-4 28683 29137 28984 Staten Island 28562 28339 28116
98 29816 5-9 29394 29890 30397 Staten Island 30253 30015 29595
99 30932 10-14 30307 30001 30541 Staten Island 31074 30797 30703
100 31626 15-19 31299 30810 30541 Staten Island 31094 32929 31364
101 31000 20-24 31311 31151 30697 Staten Island 30448 31458 32832
102 31186 25-29 33740 32035 31903 Staten Island 31443 29988 32257
103 32542 30-34 33431 34859 33128 Staten Island 33015 29859 31046
104 33066 35-39 31131 33418 34883 Staten Island 33175 31472 29905
105 33478 40-44 30214 31354 33688 Staten Island 35191 34158 31758
106 33518 45-49 30275 28721 29839 Staten Island 32087 36005 32513
107 32891 50-54 33340 30962 29404 Staten Island 30583 35743 36881
108 28857 55-59 34787 31367 29162 Staten Island 27735 31253 33673
109 26070 60-64 31599 32593 29419 Staten Island 27407 27370 29292
110 24379 65-69 25968 27992 28906 Staten Island 26174 19124 24237
111 23065 70-74 21232 22754 24548 Staten Island 25464 13507 16733
112 20853 75-79 13581 17259 18508 Staten Island 20104 10595 10968
113 15265 80-84 8259 10249 12989 Staten Island 14071 8263 7981
114 14321 85+ 8604 8888 10212 Staten Island 12639 7855 8505
115 501109 Total 487155 493440 497749 Staten Island 500519 468730 478359

View File

@ -0,0 +1,163 @@
candname officeboro canclass generalpay election totalpay primarypay officedist officecd runoffpay candid
CANDNAME OFFICEBORO CANCLASS
Addabbo, Joseph P P 0 2005 0 0 32 5 0
Akbar, Celestina P 0 2005 0 0 23 5 0 884
Antoine, Royston P 0 2005 59900.00 59900.00 41 5 0 864
Arroyo, Maria C P 0 2005 0 0 17 5 0 838
Avella, Tony P 75120.00 2005 75120.00 0 19 5 0 51
Baez, Maria P 0 2005 0 0 14 5 0 591
Baldeo, Albert J P 0 2005 82500.00 82500.00 28 5 0 835
Barron, Charles P 58577.00 2005 141077.00 82500.00 42 5 0
Bernace, Victor A P 0 2005 48900.00 48900.00 7 5 0 560
Betancourt Jr, Ismael P 0 2005 82500.00 82500.00 13 5 0
Beys, Michael P P 0 2005 82500.00 82500.00 2 5 0 870
Bilal, Charles A P 0 2005 0 0 28 5 0 321
Billups, Charles B P 44924.00 2005 44924.00 0 35 5 0 852
Blackwell, Eric S P 0 2005 0 0 35 5 0
Bloch, Darren S P 0 2005 82500.00 82500.00 2 5 0 849
Bloodsaw, Daryl G P 37700.00 2005 37700.00 0 9 5 0 508
Boudouvas, Peter T P 81960.00 2005 81960.00 0 19 5 0 890
Brewer, Gale A P 0 2005 0 0 6 5 0 399
Brightharp, Joan J P 0 2005 25512.00 25512.00 2 5 0 830
Brodsky, Meryl P 0 2005 55776.00 55776.00 4 5 0 812
Brown Jr, Will P 0 2005 0 0 9 5 0 1011
Cabbagestalk, Jr., Damon L P 0 2005 0 0 2 0 848
Carlino, John P 0 2005 0 0 2 5 0 892
Carrion, Jr., Adolfo X P 0 2005 0 0 4 0
Carroll, Rodney L P 0 2005 72420.00 72420.00 9 5 0 840
Cavaco, Manuel S P 0 2005 0 0 2 5 0 984
Ceder, David P 25324.00 2005 25324.00 0 50 5 0 891
Cesnik, Eric A P 0 2005 50518.00 50518.00 5 5 0 853
Chino, Theo B P 0 2005 0 0 1 0 844
Clarke, Yvette D P 0 2005 81784.00 81784.00 40 5 0 511
Cornelius, Yasmin H P 0 2005 82500.00 82500.00 9 5 0 754
de Blasio, Bill P 0 2005 0 0 39 5 0 326
Denis, Nelson A P 0 2005 78562.00 78562.00 8 5 0
Dickens, Inez E P 0 2005 82500.00 82500.00 9 5 0 867
Dilan, Erik M P 0 2005 0 0 37 5 0 444
Doty, Cynthia L P 0 2005 65044.00 65044.00 9 5 0 860
Duggan, Essie M P 0 2005 0 0 41 5 0 854
Ellner, Brian V M P 0 2005 708950.00 708950.00 4 0 809
Emmanuel, Ernest P 0 2005 0 0 45 5 0
Espaillat, Adriano M P 0 2005 522599.00 522599.00 4 0 93
Estrada Rukaj, Irene E P 0 2005 0 0 13 5 0 889
Ferrer, Fernando P 2676060.00 2005 4361060.00 1685000.00 1 0
Fidler, Lewis A P 12092.00 2005 94592.00 82500.00 46 5 0 527
Fields, C. Virginia P 0 2005 1459636.00 1459636.00 1 0
Fields, Jessie M P 141189.00 2005 141189.00 0 4 0 526
Flanagan, Claudia P 0 2005 0 0 2 5 0 880
Foglia, Philip F P 82500.00 2005 82500.00 0 13 5 0 879
Foster, Helen Diane P 20625.00 2005 20625.00 0 16 5 0 325
Galarza, David P 0 2005 52290.00 52290.00 38 5 0 851
Gallagher, Dennis P P 0 2005 0 0 30 5 0 334
Gallo, Russell C P 24860.00 2005 24860.00 0 47 5 0 1005
Garodnick, Daniel R P 82500.00 2005 165000.00 82500.00 4 5 0 721
Gennaro, James F P 44704.00 2005 127204.00 82500.00 24 5 0 283
Gentile, Vincent J P 82500.00 2005 82500.00 0 43 5 0 717
Gerson, Alan J P 0 2005 0 0 1 5 0 268
Gioia, Eric P 0 2005 0 0 26 5 0 418
Golub, Jay P 0 2005 0 0 2 0 503
Gonzalez, Sara M P 8580.00 2005 67580.00 59000.00 38 5 0 711
Gotbaum, Betsy F P 44260.00 2005 1170700.00 1126440.00 2 0 263
Grandoit, Tamara P 0 2005 73972.00 73972.00 46 5 0 872
Hall, Jody P 75020.00 2005 75020.00 0 49 5 0 1004
Henderson, Woody P 21580.00 2005 21580.00 0 9 5 0 790
Herbert, Anthony L P 0 2005 0 0 35 5 0 738
Hoffnung, Ari M P 0 2005 82500.00 82500.00 11 5 0 825
Hooks, Erik L P 0 2005 0 0 33 5 0 895
Hooks, Jr., David R P 0 2005 54350.00 54350.00 31 5 0 359
Jackson, Robert P 15640.00 2005 57124.00 41484.00 7 5 0 484
James, Letitia P 18720.00 2005 91564.00 72844.00 35 5 0 480
Johnson, Joyce S P 0 2005 82500.00 82500.00 8 5 0 768
Junior, Pamela M P 0 2005 0 0 41 5 0 742
Kann, Jerry P 0 2005 0 0 22 5 0 492
Karako, Jak J P 18388.00 2005 100888.00 82500.00 4 5 0 677
Kaufman, Stephen B P 0 2005 63528.00 63528.00 13 5 0 859
Kavanagh, Brian P P 0 2005 82500.00 82500.00 2 5 0 753
Kinard, Stanley P 0 2005 58700.00 58700.00 41 5 0
King, Danny P 0 2005 39623.00 39623.00 41 5 0 839
King, Erlene J P 68205.00 2005 68205.00 0 45 5 0 716
Koppell, G. Oliver P 20625.00 2005 103125.00 82500.00 11 5 0 459
Lanza, Andrew J P 82500.00 2005 82500.00 0 51 5 0 546
Lappin, Jessica S P 82500.00 2005 165000.00 82500.00 5 5 0 805
Lester, Jack L P 11263.00 2005 93763.00 82500.00 4 5 0 810
Liu, John C P 0 2005 0 0 20 5 0
Lobo, Renee P 9180.00 2005 91164.00 81984.00 24 5 0 473
Lopez, Margarita M P 0 2005 453745.00 453745.00 4 0
Luciano, Felipe P 0 2005 81280.00 81280.00 8 5 0 472
Luisi, John S P 107736.00 2005 107736.00 0 4 0 857
Mahadeo, Robby P 0 2005 0 0 28 5 0 871
Manzano, Carlos M P 0 2005 620836.00 620836.00 4 0 206
Marcial, Edwin P 0 2005 0 0 8 5 0
Mark-Viverito, Melissa P 0 2005 82500.00 82500.00 8 5 0 743
Markowitz, Marty K P 0 2005 0 0 4 0 226
Marshall, Helen M Q P 0 2005 0 0 4 0
Martinez, Israel P 0 2005 0 0 18 5 0
Mattera, Gloria K P 199526.00 2005 199526.00 0 4 0 440
McMahon, Michael E P 82500.00 2005 82500.00 0 49 5 0 271
McManus, Joseph A P 0 2005 82500.00 82500.00 13 5 0 841
McNally, Zenobia E P 0 2005 59569.00 59569.00 40 5 0 885
Mealy, Darlene P 20625.00 2005 120625.00 100000.00 41 5 0 846
Mendez, Rosie P 41250.00 2005 123750.00 82500.00 2 5 0 804
Michels, Stanley E M P 0 2005 296716.00 296716.00 4 0
Miller, A. Gifford P 0 2005 2462951.00 2462951.00 1 0
Miller, David R P 0 2005 0 0 41 5 0
Molinaro, James P S P 596660.00 2005 596660.00 0 4 0 419
Monserrate, Hiram P 0 2005 82500.00 82500.00 21 5 0 272
Montague, Virginia M P 0 2005 82500.00 82500.00 9 5 0
Moskowitz, Eva S M P 0 2005 625788.00 625788.00 4 0
Muhammad, Naquan A P 0 2005 0 0 41 5 0 803
Murphy, Patrick P 82500.00 2005 82500.00 0 4 5 0 855
Narine, Dhanpaul P 0 2005 0 0 28 5 0 843
Nath, Dilip P 0 2005 78276.00 78276.00 24 5 0 820
Nelson, Michael C P 82500.00 2005 82500.00 0 48 5 0 207
Nocerino, Joseph R P 0 2005 75042.00 75042.00 29 5 0 837
Oddo, James S P 82500.00 2005 82500.00 0 50 5 0 214
Ognibene, Thomas V P 0 2005 0 0 1 0
Palma, Annabel P 0 2005 0 0 18 5 0 767
Papajohn, Christopher J P 0 2005 0 0 2 5 0 866
Perkins, Bill M P 0 2005 429913.00 429913.00 4 0
Popik, Barry A M P 0 2005 0 0 4 0 887
Pu-Folkes, Bryan R P 0 2005 82500.00 82500.00 25 5 0 823
Quart, Dan P 0 2005 82500.00 82500.00 5 5 0 710
Quinn, Christine C P 0 2005 0 0 3 5 0 204
Rahman, Masud M P 31339.00 2005 31339.00 0 25 5 0 881
Rasiej, Andrew C P 0 2005 785249.00 785249.00 2 0 882
Recchia, Domenic P 82500.00 2005 82500.00 0 47 5 0
Reyna, Diana P 17300.00 2005 87920.00 70620.00 34 5 0 452
Rivera, George P 0 2005 75875.00 75875.00 34 5 0 869
Rivera, Joel P 0 2005 0 0 15 5 0 361
Rodriguez, Edward P 0 2005 82500.00 82500.00 38 5 0 714
Rosario, Antonio P 30860.00 2005 30860.00 0 14 5 0 875
Roth, Michael P 20392.00 2005 20392.00 0 48 5 0 819
Ruiz, John P 0 2005 76556.00 76556.00 8 5 0 842
Russo, Pasqualino P 82100.00 2005 82100.00 0 43 5 0 758
Samad, Maryam A P 0 2005 0 0 41 5 0 863
Schlanger, Craig P 20248.00 2005 20248.00 0 51 5 0 1003
Seabrook, Larry B P 71000.00 2005 71000.00 0 12 5 0
Sears, Helen P 20832.00 2005 103332.00 82500.00 25 5 0
Sementilli, Egidio J P 0 2005 0 0 13 5 0
Sica, Philip T Q P 0 2005 0 0 4 0 557
Siegel, Norman H P 0 2005 729052.00 729052.00 2 0 310
Sklar, Robyn L P 33252.00 2005 33252.00 0 26 5 0 868
Spitz, George N P 0 2005 33376.00 33376.00 5 5 0
Stewart, Kendall B P 0 2005 82500.00 82500.00 45 5 0
Stringer, Scott M M P 0 2005 708950.00 708950.00 4 0 148
Taitt, Samuel A P 0 2005 82500.00 82500.00 45 5 0 490
Tapper, Marlene J P 0 2005 82500.00 82500.00 21 5 0 861
Thompson, Jr., William C P 0 2005 0 0 3 0 260
Tsabar, Gur J P 0 2005 82500.00 82500.00 2 5 0 807
Vacca, James P 82500.00 2005 165000.00 82500.00 13 5 0 821
Vallone, Jr., Peter F P 0 2005 0 0 22 5 0 240
Vann, Albert P 0 2005 15200.00 15200.00 36 5 0 202
Vazquez-Hernandez, Viviana P 22780.00 2005 22780.00 0 38 5 0 1001
Velazquez Bennett, Yvette P 0 2005 0 0 39 5 0 903
Weiner, Anthony D P 0 2005 1734228.00 1734228.00 1 0
Weir, Elias J P 0 2005 0 0 46 5 0 551
Weprin, David I P 0 2005 0 0 23 5 0 232
White, Jr., Thomas P 5294.00 2005 87794.00 82500.00 28 5 0
Whitehead, John C P 0 2005 0 0 42 5 0 802
Wright, Keith M P 0 2005 173090.00 173090.00 4 0 828
Yablon, Joshua P 38816.00 2005 38816.00 0 6 5 0 729
Yassky, David P 0 2005 0 0 33 5 0 280
Zinberg, Joel M P 82500.00 2005 82500.00 0 5 5 0 858
1 candname officeboro canclass generalpay election totalpay primarypay officedist officecd runoffpay candid
2 CANDNAME OFFICEBORO CANCLASS
3 Addabbo, Joseph P P 0 2005 0 0 32 5 0
4 Akbar, Celestina P 0 2005 0 0 23 5 0 884
5 Antoine, Royston P 0 2005 59900.00 59900.00 41 5 0 864
6 Arroyo, Maria C P 0 2005 0 0 17 5 0 838
7 Avella, Tony P 75120.00 2005 75120.00 0 19 5 0 51
8 Baez, Maria P 0 2005 0 0 14 5 0 591
9 Baldeo, Albert J P 0 2005 82500.00 82500.00 28 5 0 835
10 Barron, Charles P 58577.00 2005 141077.00 82500.00 42 5 0
11 Bernace, Victor A P 0 2005 48900.00 48900.00 7 5 0 560
12 Betancourt Jr, Ismael P 0 2005 82500.00 82500.00 13 5 0
13 Beys, Michael P P 0 2005 82500.00 82500.00 2 5 0 870
14 Bilal, Charles A P 0 2005 0 0 28 5 0 321
15 Billups, Charles B P 44924.00 2005 44924.00 0 35 5 0 852
16 Blackwell, Eric S P 0 2005 0 0 35 5 0
17 Bloch, Darren S P 0 2005 82500.00 82500.00 2 5 0 849
18 Bloodsaw, Daryl G P 37700.00 2005 37700.00 0 9 5 0 508
19 Boudouvas, Peter T P 81960.00 2005 81960.00 0 19 5 0 890
20 Brewer, Gale A P 0 2005 0 0 6 5 0 399
21 Brightharp, Joan J P 0 2005 25512.00 25512.00 2 5 0 830
22 Brodsky, Meryl P 0 2005 55776.00 55776.00 4 5 0 812
23 Brown Jr, Will P 0 2005 0 0 9 5 0 1011
24 Cabbagestalk, Jr., Damon L P 0 2005 0 0 2 0 848
25 Carlino, John P 0 2005 0 0 2 5 0 892
26 Carrion, Jr., Adolfo X P 0 2005 0 0 4 0
27 Carroll, Rodney L P 0 2005 72420.00 72420.00 9 5 0 840
28 Cavaco, Manuel S P 0 2005 0 0 2 5 0 984
29 Ceder, David P 25324.00 2005 25324.00 0 50 5 0 891
30 Cesnik, Eric A P 0 2005 50518.00 50518.00 5 5 0 853
31 Chino, Theo B P 0 2005 0 0 1 0 844
32 Clarke, Yvette D P 0 2005 81784.00 81784.00 40 5 0 511
33 Cornelius, Yasmin H P 0 2005 82500.00 82500.00 9 5 0 754
34 de Blasio, Bill P 0 2005 0 0 39 5 0 326
35 Denis, Nelson A P 0 2005 78562.00 78562.00 8 5 0
36 Dickens, Inez E P 0 2005 82500.00 82500.00 9 5 0 867
37 Dilan, Erik M P 0 2005 0 0 37 5 0 444
38 Doty, Cynthia L P 0 2005 65044.00 65044.00 9 5 0 860
39 Duggan, Essie M P 0 2005 0 0 41 5 0 854
40 Ellner, Brian V M P 0 2005 708950.00 708950.00 4 0 809
41 Emmanuel, Ernest P 0 2005 0 0 45 5 0
42 Espaillat, Adriano M P 0 2005 522599.00 522599.00 4 0 93
43 Estrada Rukaj, Irene E P 0 2005 0 0 13 5 0 889
44 Ferrer, Fernando P 2676060.00 2005 4361060.00 1685000.00 1 0
45 Fidler, Lewis A P 12092.00 2005 94592.00 82500.00 46 5 0 527
46 Fields, C. Virginia P 0 2005 1459636.00 1459636.00 1 0
47 Fields, Jessie M P 141189.00 2005 141189.00 0 4 0 526
48 Flanagan, Claudia P 0 2005 0 0 2 5 0 880
49 Foglia, Philip F P 82500.00 2005 82500.00 0 13 5 0 879
50 Foster, Helen Diane P 20625.00 2005 20625.00 0 16 5 0 325
51 Galarza, David P 0 2005 52290.00 52290.00 38 5 0 851
52 Gallagher, Dennis P P 0 2005 0 0 30 5 0 334
53 Gallo, Russell C P 24860.00 2005 24860.00 0 47 5 0 1005
54 Garodnick, Daniel R P 82500.00 2005 165000.00 82500.00 4 5 0 721
55 Gennaro, James F P 44704.00 2005 127204.00 82500.00 24 5 0 283
56 Gentile, Vincent J P 82500.00 2005 82500.00 0 43 5 0 717
57 Gerson, Alan J P 0 2005 0 0 1 5 0 268
58 Gioia, Eric P 0 2005 0 0 26 5 0 418
59 Golub, Jay P 0 2005 0 0 2 0 503
60 Gonzalez, Sara M P 8580.00 2005 67580.00 59000.00 38 5 0 711
61 Gotbaum, Betsy F P 44260.00 2005 1170700.00 1126440.00 2 0 263
62 Grandoit, Tamara P 0 2005 73972.00 73972.00 46 5 0 872
63 Hall, Jody P 75020.00 2005 75020.00 0 49 5 0 1004
64 Henderson, Woody P 21580.00 2005 21580.00 0 9 5 0 790
65 Herbert, Anthony L P 0 2005 0 0 35 5 0 738
66 Hoffnung, Ari M P 0 2005 82500.00 82500.00 11 5 0 825
67 Hooks, Erik L P 0 2005 0 0 33 5 0 895
68 Hooks, Jr., David R P 0 2005 54350.00 54350.00 31 5 0 359
69 Jackson, Robert P 15640.00 2005 57124.00 41484.00 7 5 0 484
70 James, Letitia P 18720.00 2005 91564.00 72844.00 35 5 0 480
71 Johnson, Joyce S P 0 2005 82500.00 82500.00 8 5 0 768
72 Junior, Pamela M P 0 2005 0 0 41 5 0 742
73 Kann, Jerry P 0 2005 0 0 22 5 0 492
74 Karako, Jak J P 18388.00 2005 100888.00 82500.00 4 5 0 677
75 Kaufman, Stephen B P 0 2005 63528.00 63528.00 13 5 0 859
76 Kavanagh, Brian P P 0 2005 82500.00 82500.00 2 5 0 753
77 Kinard, Stanley P 0 2005 58700.00 58700.00 41 5 0
78 King, Danny P 0 2005 39623.00 39623.00 41 5 0 839
79 King, Erlene J P 68205.00 2005 68205.00 0 45 5 0 716
80 Koppell, G. Oliver P 20625.00 2005 103125.00 82500.00 11 5 0 459
81 Lanza, Andrew J P 82500.00 2005 82500.00 0 51 5 0 546
82 Lappin, Jessica S P 82500.00 2005 165000.00 82500.00 5 5 0 805
83 Lester, Jack L P 11263.00 2005 93763.00 82500.00 4 5 0 810
84 Liu, John C P 0 2005 0 0 20 5 0
85 Lobo, Renee P 9180.00 2005 91164.00 81984.00 24 5 0 473
86 Lopez, Margarita M P 0 2005 453745.00 453745.00 4 0
87 Luciano, Felipe P 0 2005 81280.00 81280.00 8 5 0 472
88 Luisi, John S P 107736.00 2005 107736.00 0 4 0 857
89 Mahadeo, Robby P 0 2005 0 0 28 5 0 871
90 Manzano, Carlos M P 0 2005 620836.00 620836.00 4 0 206
91 Marcial, Edwin P 0 2005 0 0 8 5 0
92 Mark-Viverito, Melissa P 0 2005 82500.00 82500.00 8 5 0 743
93 Markowitz, Marty K P 0 2005 0 0 4 0 226
94 Marshall, Helen M Q P 0 2005 0 0 4 0
95 Martinez, Israel P 0 2005 0 0 18 5 0
96 Mattera, Gloria K P 199526.00 2005 199526.00 0 4 0 440
97 McMahon, Michael E P 82500.00 2005 82500.00 0 49 5 0 271
98 McManus, Joseph A P 0 2005 82500.00 82500.00 13 5 0 841
99 McNally, Zenobia E P 0 2005 59569.00 59569.00 40 5 0 885
100 Mealy, Darlene P 20625.00 2005 120625.00 100000.00 41 5 0 846
101 Mendez, Rosie P 41250.00 2005 123750.00 82500.00 2 5 0 804
102 Michels, Stanley E M P 0 2005 296716.00 296716.00 4 0
103 Miller, A. Gifford P 0 2005 2462951.00 2462951.00 1 0
104 Miller, David R P 0 2005 0 0 41 5 0
105 Molinaro, James P S P 596660.00 2005 596660.00 0 4 0 419
106 Monserrate, Hiram P 0 2005 82500.00 82500.00 21 5 0 272
107 Montague, Virginia M P 0 2005 82500.00 82500.00 9 5 0
108 Moskowitz, Eva S M P 0 2005 625788.00 625788.00 4 0
109 Muhammad, Naquan A P 0 2005 0 0 41 5 0 803
110 Murphy, Patrick P 82500.00 2005 82500.00 0 4 5 0 855
111 Narine, Dhanpaul P 0 2005 0 0 28 5 0 843
112 Nath, Dilip P 0 2005 78276.00 78276.00 24 5 0 820
113 Nelson, Michael C P 82500.00 2005 82500.00 0 48 5 0 207
114 Nocerino, Joseph R P 0 2005 75042.00 75042.00 29 5 0 837
115 Oddo, James S P 82500.00 2005 82500.00 0 50 5 0 214
116 Ognibene, Thomas V P 0 2005 0 0 1 0
117 Palma, Annabel P 0 2005 0 0 18 5 0 767
118 Papajohn, Christopher J P 0 2005 0 0 2 5 0 866
119 Perkins, Bill M P 0 2005 429913.00 429913.00 4 0
120 Popik, Barry A M P 0 2005 0 0 4 0 887
121 Pu-Folkes, Bryan R P 0 2005 82500.00 82500.00 25 5 0 823
122 Quart, Dan P 0 2005 82500.00 82500.00 5 5 0 710
123 Quinn, Christine C P 0 2005 0 0 3 5 0 204
124 Rahman, Masud M P 31339.00 2005 31339.00 0 25 5 0 881
125 Rasiej, Andrew C P 0 2005 785249.00 785249.00 2 0 882
126 Recchia, Domenic P 82500.00 2005 82500.00 0 47 5 0
127 Reyna, Diana P 17300.00 2005 87920.00 70620.00 34 5 0 452
128 Rivera, George P 0 2005 75875.00 75875.00 34 5 0 869
129 Rivera, Joel P 0 2005 0 0 15 5 0 361
130 Rodriguez, Edward P 0 2005 82500.00 82500.00 38 5 0 714
131 Rosario, Antonio P 30860.00 2005 30860.00 0 14 5 0 875
132 Roth, Michael P 20392.00 2005 20392.00 0 48 5 0 819
133 Ruiz, John P 0 2005 76556.00 76556.00 8 5 0 842
134 Russo, Pasqualino P 82100.00 2005 82100.00 0 43 5 0 758
135 Samad, Maryam A P 0 2005 0 0 41 5 0 863
136 Schlanger, Craig P 20248.00 2005 20248.00 0 51 5 0 1003
137 Seabrook, Larry B P 71000.00 2005 71000.00 0 12 5 0
138 Sears, Helen P 20832.00 2005 103332.00 82500.00 25 5 0
139 Sementilli, Egidio J P 0 2005 0 0 13 5 0
140 Sica, Philip T Q P 0 2005 0 0 4 0 557
141 Siegel, Norman H P 0 2005 729052.00 729052.00 2 0 310
142 Sklar, Robyn L P 33252.00 2005 33252.00 0 26 5 0 868
143 Spitz, George N P 0 2005 33376.00 33376.00 5 5 0
144 Stewart, Kendall B P 0 2005 82500.00 82500.00 45 5 0
145 Stringer, Scott M M P 0 2005 708950.00 708950.00 4 0 148
146 Taitt, Samuel A P 0 2005 82500.00 82500.00 45 5 0 490
147 Tapper, Marlene J P 0 2005 82500.00 82500.00 21 5 0 861
148 Thompson, Jr., William C P 0 2005 0 0 3 0 260
149 Tsabar, Gur J P 0 2005 82500.00 82500.00 2 5 0 807
150 Vacca, James P 82500.00 2005 165000.00 82500.00 13 5 0 821
151 Vallone, Jr., Peter F P 0 2005 0 0 22 5 0 240
152 Vann, Albert P 0 2005 15200.00 15200.00 36 5 0 202
153 Vazquez-Hernandez, Viviana P 22780.00 2005 22780.00 0 38 5 0 1001
154 Velazquez Bennett, Yvette P 0 2005 0 0 39 5 0 903
155 Weiner, Anthony D P 0 2005 1734228.00 1734228.00 1 0
156 Weir, Elias J P 0 2005 0 0 46 5 0 551
157 Weprin, David I P 0 2005 0 0 23 5 0 232
158 White, Jr., Thomas P 5294.00 2005 87794.00 82500.00 28 5 0
159 Whitehead, John C P 0 2005 0 0 42 5 0 802
160 Wright, Keith M P 0 2005 173090.00 173090.00 4 0 828
161 Yablon, Joshua P 38816.00 2005 38816.00 0 6 5 0 729
162 Yassky, David P 0 2005 0 0 33 5 0 280
163 Zinberg, Joel M P 82500.00 2005 82500.00 0 5 5 0 858

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,227 @@
yearly_percent_change total_self_reported month year monthly_percent_change total_job_placements new_hires
22.30 2208 1 1995 -1.20
26.00 1913 2 1995 -13.40
25.00 3109 3 1995 62.50
"-31.90" 1443 4 1995 -53.60
130.80 3303 5 1995 128.90
85.10 2462 6 1995 -25.50
26.00 2013 7 1995 -18.20
81.40 4114 8 1995 104.40
150.50 4081 9 1995 -0.80
29.30 2420 10 1995 -40.70
53.10 1731 11 1995 -28.50
"-9.80" 2016 12 1995 16.50
"-29.80" 1549 1 1996 -23.20
32.30 2530 2 1996 63.30
19.50 3714 3 1996 46.80
65.50 2388 4 1996 -35.70
"-8.30" 3028 5 1996 26.80
129.60 5652 6 1996 86.70
33.00 2678 7 1996 -52.60
"-47.50" 2158 8 1996 -19.40
"-46.80" 2171 9 1996 0.60
36.70 3307 10 1996 52.30
103.20 3518 11 1996 6.40
89.30 3817 12 1996 8.50
101.20 3116 1 1997 -18.40
8.70 2750 2 1997 -11.70
"-1.10" 3672 3 1997 33.50
58.20 3779 4 1997 2.90
41.30 4279 5 1997 13.20
"-32.40" 3821 6 1997 -10.70
56.60 4194 7 1997 9.80
59.70 3447 8 1997 -17.80
81.80 3946 9 1997 14.50
43.60 4748 10 1997 20.30
6.40 3743 11 1997 -21.20
20.70 4606 12 1997 23.10
18.70 3699 1 1998 -19.70
22.50 3368 2 1998 -8.90
6.60 3914 3 1998 16.20
"-5.90" 3557 4 1998 -9.10
"-22.90" 3300 5 1998 -7.20
7.70 4116 6 1998 24.70
"-18.30" 3427 7 1998 -16.70
60.70 5539 8 1998 61.60
4.80 4136 9 1998 -25.30
"-27.20" 3457 10 1998 -16.40
"-8.50" 3425 11 1998 -0.90
18.90 5475 12 1998 59.90
2.70 3799 1 1999 -30.60
27.80 4303 2 1999 13.30
"-2.20" 3826 3 1999 -11.10
"-0.90" 3525 4 1999 -7.90
22.80 4051 5 1999 14.90
"-18.50" 3353 6 1999 -17.20
19.30 4087 7 1999 21.90
"-25.50" 4126 8 1999 1.00
"-14.60" 3531 9 1999 -14.40
"-9.30" 3134 10 1999 -11.20
9.30 3744 11 1999 19.50
"-27.60" 3965 12 1999 5.90
58.80 6031 1 2000 52.10 10256 4225
"-18.00" 3528 2 2000 -41.50 7753 4225
11.50 4266 3 2000 20.90 8491 4225
29.40 4563 4 2000 7.00 8788 4225
12.10 4543 5 2000 -0.40 8768 4225
81.80 6096 6 2000 34.20 10321 4225
13.40 4634 7 2000 -24.00 8859 4225
52.40 6290 8 2000 35.70 10515 4225
28.40 4535 9 2000 -27.90 8760 4225
97.80 6199 10 2000 36.70 10424 4225
94.60 7286 11 2000 17.50 11511 4225
92.90 7648 12 2000 5.00 11873 4225
"-10.30" 5408 1 2001 -29.30 6804 1396
75.30 6184 2 2001 14.30 8316 2132
44.70 6174 3 2001 -0.20 7183 1009
10.70 5049 4 2001 -18.20 8085 3036
1.10 4595 5 2001 -9.00 7951 3356
7.50 6551 6 2001 42.60 10057 3506
15.30 5344 7 2001 -18.40 10642 5298
0.30 6312 8 2001 18.10 10997 4685
"-17.20" 3756 9 2001 -40.50 8238 4482
"-24.20" 4698 10 2001 25.10 11056 6358
"-10.00" 6556 11 2001 39.50 10848 4292
"-3.40" 7387 12 2001 12.70 10084 2697
27.10 7609 1 2002 -14.20 8651 1042
"-6.70" 6273 2 2002 -10.30 7759 1486
1.10 4957 3 2002 -6.40 7264 2307
"-15.30" 4576 4 2002 -5.70 6852 2276
17.10 6120 5 2002 35.90 9312 3192
"-19.50" 4642 6 2002 -13.00 8100 3458
"-4.20" 5838 7 2002 25.90 10199 4361
"-16.40" 4984 8 2002 -9.90 9189 4205
0.60 3771 9 2002 -9.80 8285 4514
"-25.90" 5333 10 2002 -1.20 8189 2856
"-12.10" 4770 11 2002 16.40 9532 4762
"-21.90" 5842 12 2002 -17.30 7880 2038
"-32.10" 4757 1 2003 -25.40 5875 1118
"-38.40" 3970 2 2003 -18.70 4778 808
"-42.80" 3301 3 2003 -13.00 4156 855
"-0.90" 5741 4 2003 63.40 6790 1049
"-46.40" 3858 5 2003 -26.60 4987 1129
"-42.00" 3656 6 2003 -5.80 4700 1044
"-41.60" 4914 7 2003 26.70 5957 1043
"-38.70" 4630 8 2003 -5.40 5635 1005
"-32.20" 4760 9 2003 -0.30 5620 860
2.70 6573 10 2003 49.60 8408 1835
"-36.70" 4450 11 2003 -28.20 6033 1583
"-5.20" 6790 12 2003 23.80 7471 681
4.30 5000 1 2004 -18.00 6129 1129
12.20 4823 2 2004 -12.50 5361 538
73.50 6304 3 2004 34.50 7212 908
"-5.60" 5309 4 2004 -11.10 6409 1100
33.20 5009 5 2004 3.60 6641 1632
61.90 6397 6 2004 14.60 7611 1214
26.80 5461 7 2004 -0.70 7554 2093
23.40 5233 8 2004 -8.00 6951 1718
43.10 6725 9 2004 15.70 8043 1318
"-5.90" 5927 10 2004 -1.60 7912 1985
9.80 5430 11 2004 -16.20 6627 1197
29.90 8232 12 2004 46.40 9703 1471
"-29.90" 3367 1 2005 -55.70 4295 928
19.40 5254 2 2005 49.00 6400 1146
9.90 6456 3 2005 23.80 7923 1467
13.20 5864 4 2005 -8.40 7256 1392
6.30 5391 5 2005 -2.70 7062 1671
17.30 7702 6 2005 26.40 8928 1226
"-6.60" 5412 7 2005 -21.00 7055 1643
20.70 6058 8 2005 18.90 8390 2332
"-22.00" 4166 9 2005 -25.20 6272 2106
"-12.80" 5887 10 2005 10.00 6902 1015
7.50 5367 11 2005 3.20 7121 1754
"-26.60" 6163 12 2005 0.00 7124 961
"-9.20" 2288 1 2006 -45.30 3898 1610
"-8.70" 4525 2 2006 49.90 5845 1320
"-9.80" 5353 3 2006 22.30 7148 1795
"-19.50" 4560 4 2006 -18.30 5839 1279
13.00 6108 5 2006 36.70 7980 1872
"-22.70" 4800 6 2006 -13.50 6903 2103
"-10.10" 4319 7 2006 -8.20 6340 2021
"-4.10" 5593 8 2006 26.90 8043 2450
"-5.40" 3788 9 2006 -26.20 5935 2147
"-4.70" 4297 10 2006 10.90 6581 2284
"-4.30" 4692 11 2006 3.60 6815 2123
"-13.60" 5240 12 2006 -9.70 6155 915
43.80 4108 1 2007 -8.90 5605 1497
"-5.20" 3959 2 2007 -1.20 5539 1580
"-27.10" 3624 3 2007 -6.00 5209 1585
"-9.80" 3591 4 2007 1.10 5268 1677
"-23.40" 3743 5 2007 16.10 6115 2372
5.40 5098 6 2007 19.00 7274 2176
"-0.30" 3877 7 2007 -13.10 6322 2445
"-6.40" 4671 8 2007 19.10 7530 2859
"-5.20" 3354 9 2007 -25.30 5624 2270
8.60 4967 10 2007 27.10 7146 2179
"-22.70" 2946 11 2007 -26.30 5268 2322
73.30 9073 12 2007 102.50 10668 1595
"-10.00" 3450 1 2008 -52.70 5045 1595
1.20 3845 2 2008 11.10 5606 1761
19.90 4501 3 2008 11.40 6247 1746
54.40 5738 4 2008 30.20 8132 2394
3.30 5103 5 2008 -22.30 6318 1215
"-13.50" 4636 6 2008 -0.40 6294 1658
32.80 5839 7 2008 33.40 8395 2556
"-9.40" 4076 8 2008 -18.80 6820 2744
11.60 4308 9 2008 -7.90 6279 1971
12.20 5519 10 2008 27.60 8015 2496
5.20 3673 11 2008 -30.80 5543 1870
"-26.30" 5806 12 2008 41.90 7865 2059
"-8.70" 3215 1 2009 -41.40 4607 1392
3.80 4491 2 2009 26.30 5819 1328
"-6.10" 4465 3 2009 0.80 5865 1400
"-5.50" 5963 4 2009 31.10 7688 1725
"-0.60" 4481 5 2009 -18.30 6278 1797
"-12.40" 4213 6 2009 -12.20 5515 1302
"-2.70" 5437 7 2009 48.10 8169 2732
"-16.70" 4133 8 2009 -30.40 5682 1549
11.70 5284 9 2009 23.50 7016 1732
"-21.10" 4201 10 2009 -9.80 6327 2126
"-3.60" 3731 11 2009 -15.50 5345 1614
"-9.90" 6223 12 2009 32.60 7087 864
0.70 3499 1 2010 -34.50 4639 1140
"-6.30" 4329 2 2010 17.60 5455 1126
19.90 5770 3 2010 28.90 7034 1264
"-19.00" 4426 4 2010 -11.40 6231 1805
"-3.60" 4735 5 2010 -2.90 6049 1314
40.00 6027 6 2010 27.70 7723 1696
"-28.20" 3977 7 2010 -24.00 5869 1892
18.50 4419 8 2010 14.80 6735 2316
3.50 5470 9 2010 7.80 7263 1793
"-6.70" 3994 10 2010 -18.70 5906 1912
"-1.60" 3598 11 2010 -11.00 5259 1661
2.60 5786 12 2010 38.20 7270 1484
"-3.50" 3335 1 2011 -38.40 4475 1140
8.20 4750 2 2011 31.90 5904 1154
11.30 6319 3 2011 32.70 7832 1513
24.40 6088 4 2011 -1.00 7753 1665
"-28.60" 2534 5 2011 -44.30 4319 1785
"-2.30" 5889 6 2011 74.80 7548 1659
11.10 4361 7 2011 -13.60 6519 2158
3.50 4666 8 2011 7.00 6974 2308
6.90 5586 9 2011 11.30 7764 2178
"-12.50" 3680 10 2011 -33.50 5165 1485
80.50 8221 11 2011 83.80 9493 1272
"-14.00" 4981 12 2011 -34.10 6253 1272
2.40 3310 1 2012 -26.70 4583 1273
4.20 4878 2 2012 34.20 6152 1274
"-25.00" 4602 3 2012 -4.50 5877 1275
"-17.90" 5092 4 2012 8.40 6368 1276
31.50 4404 5 2012 -10.80 5681 1277
"-1.50" 6155 6 2012 30.80 7433 1278
"-34.80" 2970 7 2012 -42.80 4249 1279
27.50 7610 8 2012 109.20 8890 1280
9.20 7198 9 2012 -4.60 8479 1281
37.30 5809 10 2012 -16.40 7091 1282
"-47.40" 3712 11 2012 -29.60 4995 1283
27.60 12 2012 59.70 7979
4.00 1 2013 -40.30 4766
"-15.40" 2 2013 9.20 5205
2.10 3 2013 15.30 6003
""
""
""
""
""
""
""
1 yearly_percent_change total_self_reported month year monthly_percent_change total_job_placements new_hires
2 22.30 2208 1 1995 -1.20
3 26.00 1913 2 1995 -13.40
4 25.00 3109 3 1995 62.50
5 -31.90 1443 4 1995 -53.60
6 130.80 3303 5 1995 128.90
7 85.10 2462 6 1995 -25.50
8 26.00 2013 7 1995 -18.20
9 81.40 4114 8 1995 104.40
10 150.50 4081 9 1995 -0.80
11 29.30 2420 10 1995 -40.70
12 53.10 1731 11 1995 -28.50
13 -9.80 2016 12 1995 16.50
14 -29.80 1549 1 1996 -23.20
15 32.30 2530 2 1996 63.30
16 19.50 3714 3 1996 46.80
17 65.50 2388 4 1996 -35.70
18 -8.30 3028 5 1996 26.80
19 129.60 5652 6 1996 86.70
20 33.00 2678 7 1996 -52.60
21 -47.50 2158 8 1996 -19.40
22 -46.80 2171 9 1996 0.60
23 36.70 3307 10 1996 52.30
24 103.20 3518 11 1996 6.40
25 89.30 3817 12 1996 8.50
26 101.20 3116 1 1997 -18.40
27 8.70 2750 2 1997 -11.70
28 -1.10 3672 3 1997 33.50
29 58.20 3779 4 1997 2.90
30 41.30 4279 5 1997 13.20
31 -32.40 3821 6 1997 -10.70
32 56.60 4194 7 1997 9.80
33 59.70 3447 8 1997 -17.80
34 81.80 3946 9 1997 14.50
35 43.60 4748 10 1997 20.30
36 6.40 3743 11 1997 -21.20
37 20.70 4606 12 1997 23.10
38 18.70 3699 1 1998 -19.70
39 22.50 3368 2 1998 -8.90
40 6.60 3914 3 1998 16.20
41 -5.90 3557 4 1998 -9.10
42 -22.90 3300 5 1998 -7.20
43 7.70 4116 6 1998 24.70
44 -18.30 3427 7 1998 -16.70
45 60.70 5539 8 1998 61.60
46 4.80 4136 9 1998 -25.30
47 -27.20 3457 10 1998 -16.40
48 -8.50 3425 11 1998 -0.90
49 18.90 5475 12 1998 59.90
50 2.70 3799 1 1999 -30.60
51 27.80 4303 2 1999 13.30
52 -2.20 3826 3 1999 -11.10
53 -0.90 3525 4 1999 -7.90
54 22.80 4051 5 1999 14.90
55 -18.50 3353 6 1999 -17.20
56 19.30 4087 7 1999 21.90
57 -25.50 4126 8 1999 1.00
58 -14.60 3531 9 1999 -14.40
59 -9.30 3134 10 1999 -11.20
60 9.30 3744 11 1999 19.50
61 -27.60 3965 12 1999 5.90
62 58.80 6031 1 2000 52.10 10256 4225
63 -18.00 3528 2 2000 -41.50 7753 4225
64 11.50 4266 3 2000 20.90 8491 4225
65 29.40 4563 4 2000 7.00 8788 4225
66 12.10 4543 5 2000 -0.40 8768 4225
67 81.80 6096 6 2000 34.20 10321 4225
68 13.40 4634 7 2000 -24.00 8859 4225
69 52.40 6290 8 2000 35.70 10515 4225
70 28.40 4535 9 2000 -27.90 8760 4225
71 97.80 6199 10 2000 36.70 10424 4225
72 94.60 7286 11 2000 17.50 11511 4225
73 92.90 7648 12 2000 5.00 11873 4225
74 -10.30 5408 1 2001 -29.30 6804 1396
75 75.30 6184 2 2001 14.30 8316 2132
76 44.70 6174 3 2001 -0.20 7183 1009
77 10.70 5049 4 2001 -18.20 8085 3036
78 1.10 4595 5 2001 -9.00 7951 3356
79 7.50 6551 6 2001 42.60 10057 3506
80 15.30 5344 7 2001 -18.40 10642 5298
81 0.30 6312 8 2001 18.10 10997 4685
82 -17.20 3756 9 2001 -40.50 8238 4482
83 -24.20 4698 10 2001 25.10 11056 6358
84 -10.00 6556 11 2001 39.50 10848 4292
85 -3.40 7387 12 2001 12.70 10084 2697
86 27.10 7609 1 2002 -14.20 8651 1042
87 -6.70 6273 2 2002 -10.30 7759 1486
88 1.10 4957 3 2002 -6.40 7264 2307
89 -15.30 4576 4 2002 -5.70 6852 2276
90 17.10 6120 5 2002 35.90 9312 3192
91 -19.50 4642 6 2002 -13.00 8100 3458
92 -4.20 5838 7 2002 25.90 10199 4361
93 -16.40 4984 8 2002 -9.90 9189 4205
94 0.60 3771 9 2002 -9.80 8285 4514
95 -25.90 5333 10 2002 -1.20 8189 2856
96 -12.10 4770 11 2002 16.40 9532 4762
97 -21.90 5842 12 2002 -17.30 7880 2038
98 -32.10 4757 1 2003 -25.40 5875 1118
99 -38.40 3970 2 2003 -18.70 4778 808
100 -42.80 3301 3 2003 -13.00 4156 855
101 -0.90 5741 4 2003 63.40 6790 1049
102 -46.40 3858 5 2003 -26.60 4987 1129
103 -42.00 3656 6 2003 -5.80 4700 1044
104 -41.60 4914 7 2003 26.70 5957 1043
105 -38.70 4630 8 2003 -5.40 5635 1005
106 -32.20 4760 9 2003 -0.30 5620 860
107 2.70 6573 10 2003 49.60 8408 1835
108 -36.70 4450 11 2003 -28.20 6033 1583
109 -5.20 6790 12 2003 23.80 7471 681
110 4.30 5000 1 2004 -18.00 6129 1129
111 12.20 4823 2 2004 -12.50 5361 538
112 73.50 6304 3 2004 34.50 7212 908
113 -5.60 5309 4 2004 -11.10 6409 1100
114 33.20 5009 5 2004 3.60 6641 1632
115 61.90 6397 6 2004 14.60 7611 1214
116 26.80 5461 7 2004 -0.70 7554 2093
117 23.40 5233 8 2004 -8.00 6951 1718
118 43.10 6725 9 2004 15.70 8043 1318
119 -5.90 5927 10 2004 -1.60 7912 1985
120 9.80 5430 11 2004 -16.20 6627 1197
121 29.90 8232 12 2004 46.40 9703 1471
122 -29.90 3367 1 2005 -55.70 4295 928
123 19.40 5254 2 2005 49.00 6400 1146
124 9.90 6456 3 2005 23.80 7923 1467
125 13.20 5864 4 2005 -8.40 7256 1392
126 6.30 5391 5 2005 -2.70 7062 1671
127 17.30 7702 6 2005 26.40 8928 1226
128 -6.60 5412 7 2005 -21.00 7055 1643
129 20.70 6058 8 2005 18.90 8390 2332
130 -22.00 4166 9 2005 -25.20 6272 2106
131 -12.80 5887 10 2005 10.00 6902 1015
132 7.50 5367 11 2005 3.20 7121 1754
133 -26.60 6163 12 2005 0.00 7124 961
134 -9.20 2288 1 2006 -45.30 3898 1610
135 -8.70 4525 2 2006 49.90 5845 1320
136 -9.80 5353 3 2006 22.30 7148 1795
137 -19.50 4560 4 2006 -18.30 5839 1279
138 13.00 6108 5 2006 36.70 7980 1872
139 -22.70 4800 6 2006 -13.50 6903 2103
140 -10.10 4319 7 2006 -8.20 6340 2021
141 -4.10 5593 8 2006 26.90 8043 2450
142 -5.40 3788 9 2006 -26.20 5935 2147
143 -4.70 4297 10 2006 10.90 6581 2284
144 -4.30 4692 11 2006 3.60 6815 2123
145 -13.60 5240 12 2006 -9.70 6155 915
146 43.80 4108 1 2007 -8.90 5605 1497
147 -5.20 3959 2 2007 -1.20 5539 1580
148 -27.10 3624 3 2007 -6.00 5209 1585
149 -9.80 3591 4 2007 1.10 5268 1677
150 -23.40 3743 5 2007 16.10 6115 2372
151 5.40 5098 6 2007 19.00 7274 2176
152 -0.30 3877 7 2007 -13.10 6322 2445
153 -6.40 4671 8 2007 19.10 7530 2859
154 -5.20 3354 9 2007 -25.30 5624 2270
155 8.60 4967 10 2007 27.10 7146 2179
156 -22.70 2946 11 2007 -26.30 5268 2322
157 73.30 9073 12 2007 102.50 10668 1595
158 -10.00 3450 1 2008 -52.70 5045 1595
159 1.20 3845 2 2008 11.10 5606 1761
160 19.90 4501 3 2008 11.40 6247 1746
161 54.40 5738 4 2008 30.20 8132 2394
162 3.30 5103 5 2008 -22.30 6318 1215
163 -13.50 4636 6 2008 -0.40 6294 1658
164 32.80 5839 7 2008 33.40 8395 2556
165 -9.40 4076 8 2008 -18.80 6820 2744
166 11.60 4308 9 2008 -7.90 6279 1971
167 12.20 5519 10 2008 27.60 8015 2496
168 5.20 3673 11 2008 -30.80 5543 1870
169 -26.30 5806 12 2008 41.90 7865 2059
170 -8.70 3215 1 2009 -41.40 4607 1392
171 3.80 4491 2 2009 26.30 5819 1328
172 -6.10 4465 3 2009 0.80 5865 1400
173 -5.50 5963 4 2009 31.10 7688 1725
174 -0.60 4481 5 2009 -18.30 6278 1797
175 -12.40 4213 6 2009 -12.20 5515 1302
176 -2.70 5437 7 2009 48.10 8169 2732
177 -16.70 4133 8 2009 -30.40 5682 1549
178 11.70 5284 9 2009 23.50 7016 1732
179 -21.10 4201 10 2009 -9.80 6327 2126
180 -3.60 3731 11 2009 -15.50 5345 1614
181 -9.90 6223 12 2009 32.60 7087 864
182 0.70 3499 1 2010 -34.50 4639 1140
183 -6.30 4329 2 2010 17.60 5455 1126
184 19.90 5770 3 2010 28.90 7034 1264
185 -19.00 4426 4 2010 -11.40 6231 1805
186 -3.60 4735 5 2010 -2.90 6049 1314
187 40.00 6027 6 2010 27.70 7723 1696
188 -28.20 3977 7 2010 -24.00 5869 1892
189 18.50 4419 8 2010 14.80 6735 2316
190 3.50 5470 9 2010 7.80 7263 1793
191 -6.70 3994 10 2010 -18.70 5906 1912
192 -1.60 3598 11 2010 -11.00 5259 1661
193 2.60 5786 12 2010 38.20 7270 1484
194 -3.50 3335 1 2011 -38.40 4475 1140
195 8.20 4750 2 2011 31.90 5904 1154
196 11.30 6319 3 2011 32.70 7832 1513
197 24.40 6088 4 2011 -1.00 7753 1665
198 -28.60 2534 5 2011 -44.30 4319 1785
199 -2.30 5889 6 2011 74.80 7548 1659
200 11.10 4361 7 2011 -13.60 6519 2158
201 3.50 4666 8 2011 7.00 6974 2308
202 6.90 5586 9 2011 11.30 7764 2178
203 -12.50 3680 10 2011 -33.50 5165 1485
204 80.50 8221 11 2011 83.80 9493 1272
205 -14.00 4981 12 2011 -34.10 6253 1272
206 2.40 3310 1 2012 -26.70 4583 1273
207 4.20 4878 2 2012 34.20 6152 1274
208 -25.00 4602 3 2012 -4.50 5877 1275
209 -17.90 5092 4 2012 8.40 6368 1276
210 31.50 4404 5 2012 -10.80 5681 1277
211 -1.50 6155 6 2012 30.80 7433 1278
212 -34.80 2970 7 2012 -42.80 4249 1279
213 27.50 7610 8 2012 109.20 8890 1280
214 9.20 7198 9 2012 -4.60 8479 1281
215 37.30 5809 10 2012 -16.40 7091 1282
216 -47.40 3712 11 2012 -29.60 4995 1283
217 27.60 12 2012 59.70 7979
218 4.00 1 2013 -40.30 4766
219 -15.40 2 2013 9.20 5205
220 2.10 3 2013 15.30 6003
221
222
223
224
225
226
227

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- This web.xml file is not required when using Servlet 3.0 container,
see implementation details http://jersey.java.net/nonav/documentation/latest/jax-rs.html -->
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>Vizir Database API</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>org.vizirdb.server</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Vizir Database API</servlet-name>
<url-pattern>/api/v1/*</url-pattern>
</servlet-mapping>
</web-app>

View File

@ -0,0 +1,587 @@
/*!
* Bootstrap v3.3.6 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
.btn-default,
.btn-primary,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger {
text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
}
.btn-default:active,
.btn-primary:active,
.btn-success:active,
.btn-info:active,
.btn-warning:active,
.btn-danger:active,
.btn-default.active,
.btn-primary.active,
.btn-success.active,
.btn-info.active,
.btn-warning.active,
.btn-danger.active {
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
.btn-default.disabled,
.btn-primary.disabled,
.btn-success.disabled,
.btn-info.disabled,
.btn-warning.disabled,
.btn-danger.disabled,
.btn-default[disabled],
.btn-primary[disabled],
.btn-success[disabled],
.btn-info[disabled],
.btn-warning[disabled],
.btn-danger[disabled],
fieldset[disabled] .btn-default,
fieldset[disabled] .btn-primary,
fieldset[disabled] .btn-success,
fieldset[disabled] .btn-info,
fieldset[disabled] .btn-warning,
fieldset[disabled] .btn-danger {
-webkit-box-shadow: none;
box-shadow: none;
}
.btn-default .badge,
.btn-primary .badge,
.btn-success .badge,
.btn-info .badge,
.btn-warning .badge,
.btn-danger .badge {
text-shadow: none;
}
.btn:active,
.btn.active {
background-image: none;
}
.btn-default {
text-shadow: 0 1px 0 #fff;
background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #dbdbdb;
border-color: #ccc;
}
.btn-default:hover,
.btn-default:focus {
background-color: #e0e0e0;
background-position: 0 -15px;
}
.btn-default:active,
.btn-default.active {
background-color: #e0e0e0;
border-color: #dbdbdb;
}
.btn-default.disabled,
.btn-default[disabled],
fieldset[disabled] .btn-default,
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus,
.btn-default.disabled:active,
.btn-default[disabled]:active,
fieldset[disabled] .btn-default:active,
.btn-default.disabled.active,
.btn-default[disabled].active,
fieldset[disabled] .btn-default.active {
background-color: #e0e0e0;
background-image: none;
}
.btn-primary {
background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));
background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #245580;
}
.btn-primary:hover,
.btn-primary:focus {
background-color: #265a88;
background-position: 0 -15px;
}
.btn-primary:active,
.btn-primary.active {
background-color: #265a88;
border-color: #245580;
}
.btn-primary.disabled,
.btn-primary[disabled],
fieldset[disabled] .btn-primary,
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus,
.btn-primary.disabled:active,
.btn-primary[disabled]:active,
fieldset[disabled] .btn-primary:active,
.btn-primary.disabled.active,
.btn-primary[disabled].active,
fieldset[disabled] .btn-primary.active {
background-color: #265a88;
background-image: none;
}
.btn-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #3e8f3e;
}
.btn-success:hover,
.btn-success:focus {
background-color: #419641;
background-position: 0 -15px;
}
.btn-success:active,
.btn-success.active {
background-color: #419641;
border-color: #3e8f3e;
}
.btn-success.disabled,
.btn-success[disabled],
fieldset[disabled] .btn-success,
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus,
.btn-success.disabled:active,
.btn-success[disabled]:active,
fieldset[disabled] .btn-success:active,
.btn-success.disabled.active,
.btn-success[disabled].active,
fieldset[disabled] .btn-success.active {
background-color: #419641;
background-image: none;
}
.btn-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #28a4c9;
}
.btn-info:hover,
.btn-info:focus {
background-color: #2aabd2;
background-position: 0 -15px;
}
.btn-info:active,
.btn-info.active {
background-color: #2aabd2;
border-color: #28a4c9;
}
.btn-info.disabled,
.btn-info[disabled],
fieldset[disabled] .btn-info,
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus,
.btn-info.disabled:active,
.btn-info[disabled]:active,
fieldset[disabled] .btn-info:active,
.btn-info.disabled.active,
.btn-info[disabled].active,
fieldset[disabled] .btn-info.active {
background-color: #2aabd2;
background-image: none;
}
.btn-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #e38d13;
}
.btn-warning:hover,
.btn-warning:focus {
background-color: #eb9316;
background-position: 0 -15px;
}
.btn-warning:active,
.btn-warning.active {
background-color: #eb9316;
border-color: #e38d13;
}
.btn-warning.disabled,
.btn-warning[disabled],
fieldset[disabled] .btn-warning,
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus,
.btn-warning.disabled:active,
.btn-warning[disabled]:active,
fieldset[disabled] .btn-warning:active,
.btn-warning.disabled.active,
.btn-warning[disabled].active,
fieldset[disabled] .btn-warning.active {
background-color: #eb9316;
background-image: none;
}
.btn-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #b92c28;
}
.btn-danger:hover,
.btn-danger:focus {
background-color: #c12e2a;
background-position: 0 -15px;
}
.btn-danger:active,
.btn-danger.active {
background-color: #c12e2a;
border-color: #b92c28;
}
.btn-danger.disabled,
.btn-danger[disabled],
fieldset[disabled] .btn-danger,
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus,
.btn-danger.disabled:active,
.btn-danger[disabled]:active,
fieldset[disabled] .btn-danger:active,
.btn-danger.disabled.active,
.btn-danger[disabled].active,
fieldset[disabled] .btn-danger.active {
background-color: #c12e2a;
background-image: none;
}
.thumbnail,
.img-thumbnail {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
background-color: #e8e8e8;
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
background-color: #2e6da4;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
background-repeat: repeat-x;
}
.navbar-default {
background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));
background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
}
.navbar-brand,
.navbar-nav > li > a {
text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
}
.navbar-inverse {
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-radius: 4px;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
}
.navbar-inverse .navbar-brand,
.navbar-inverse .navbar-nav > li > a {
text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
}
.navbar-static-top,
.navbar-fixed-top,
.navbar-fixed-bottom {
border-radius: 0;
}
@media (max-width: 767px) {
.navbar .navbar-nav .open .dropdown-menu > .active > a,
.navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
color: #fff;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
background-repeat: repeat-x;
}
}
.alert {
text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
}
.alert-success {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
background-repeat: repeat-x;
border-color: #b2dba1;
}
.alert-info {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
background-repeat: repeat-x;
border-color: #9acfea;
}
.alert-warning {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
background-repeat: repeat-x;
border-color: #f5e79e;
}
.alert-danger {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
background-repeat: repeat-x;
border-color: #dca7a7;
}
.progress {
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar {
background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));
background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-striped {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
.list-group {
border-radius: 4px;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
text-shadow: 0 -1px 0 #286090;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));
background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);
background-repeat: repeat-x;
border-color: #2b669a;
}
.list-group-item.active .badge,
.list-group-item.active:hover .badge,
.list-group-item.active:focus .badge {
text-shadow: none;
}
.panel {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
}
.panel-default > .panel-heading {
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
.panel-primary > .panel-heading {
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
background-repeat: repeat-x;
}
.panel-success > .panel-heading {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
background-repeat: repeat-x;
}
.panel-info > .panel-heading {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
background-repeat: repeat-x;
}
.panel-warning > .panel-heading {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
background-repeat: repeat-x;
}
.panel-danger > .panel-heading {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
background-repeat: repeat-x;
}
.well {
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
border-color: #dcdcdc;
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
}
/*# sourceMappingURL=bootstrap-theme.css.map */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

6
src/main/webapp/css/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,15 @@
/*!
* IE10 viewport hack for Surface/desktop Windows 8 bug
* Copyright 2014-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
/*
* See the Getting Started docs for more information:
* http://getbootstrap.com/getting-started/#support-ie10-width
*/
@-webkit-viewport { width: device-width; }
@-moz-viewport { width: device-width; }
@-ms-viewport { width: device-width; }
@-o-viewport { width: device-width; }
@viewport { width: device-width; }

View File

@ -0,0 +1,21 @@
body {
padding-top: 70px;
padding-bottom: 30px;
}
span.cmd-txt {
font-weight: bold;
}
span.cmd-para {
color: #1C09E6;
}
.btn-group {
top: -5px;
float: right;
}
div.panel-form {
margin: 10px;
padding: 10px;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,125 @@
/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
display: block;
}
body {
line-height: 1;
}
ol,
ul {
list-style: none;
}
blockquote,
q {
quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,250 @@
.swagger-section #header a#logo {
font-size: 1.5em;
font-weight: bold;
text-decoration: none;
background: transparent url(../images/logo.png) no-repeat left center;
padding: 20px 0 20px 40px;
}
#text-head {
font-size: 80px;
font-family: 'Roboto', sans-serif;
color: #ffffff;
float: right;
margin-right: 20%;
}
.navbar-fixed-top .navbar-nav {
height: auto;
}
.navbar-fixed-top .navbar-brand {
height: auto;
}
.navbar-header {
height: auto;
}
.navbar-inverse {
background-color: #000;
border-color: #000;
}
#navbar-brand {
margin-left: 20%;
}
.navtext {
font-size: 10px;
}
.h1,
h1 {
font-size: 60px;
}
.navbar-default .navbar-header .navbar-brand {
color: #a2dfee;
}
/* tag titles */
.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a {
color: #393939;
font-family: 'Arvo', serif;
font-size: 1.5em;
}
.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a:hover {
color: black;
}
.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 {
color: #525252;
padding-left: 0px;
display: block;
clear: none;
float: left;
font-family: 'Arvo', serif;
font-weight: bold;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
border-color: #0A0A0A;
}
.container1 {
width: 1500px;
margin: auto;
margin-top: 0;
background-image: url('../images/shield.png');
background-repeat: no-repeat;
background-position: -40px -20px;
margin-bottom: 210px;
}
.container-inner {
width: 1200px;
margin: auto;
background-color: rgba(223, 227, 228, 0.75);
padding-bottom: 40px;
padding-top: 40px;
border-radius: 15px;
}
.header-content {
padding: 0;
width: 1000px;
}
.title1 {
font-size: 80px;
font-family: 'Vollkorn', serif;
color: #404040;
text-align: center;
padding-top: 40px;
padding-bottom: 100px;
}
#icon {
margin-top: -18px;
}
.subtext {
font-size: 25px;
font-style: italic;
color: #08b;
text-align: right;
padding-right: 250px;
}
.bg-primary {
background-color: #00468b;
}
.navbar-default .nav > li > a,
.navbar-default .nav > li > a:focus {
color: #08b;
}
.navbar-default .nav > li > a,
.navbar-default .nav > li > a:hover {
color: #08b;
}
.navbar-default .nav > li > a,
.navbar-default .nav > li > a:focus:hover {
color: #08b;
}
.text-faded {
font-size: 25px;
font-family: 'Vollkorn', serif;
}
.section-heading {
font-family: 'Vollkorn', serif;
font-size: 45px;
padding-bottom: 10px;
}
hr {
border-color: #00468b;
padding-bottom: 10px;
}
.description {
margin-top: 20px;
padding-bottom: 200px;
}
.description li {
font-family: 'Vollkorn', serif;
font-size: 25px;
color: #525252;
margin-left: 28%;
padding-top: 5px;
}
.gap {
margin-top: 200px;
}
.troubleshootingtext {
color: rgba(255, 255, 255, 0.7);
padding-left: 30%;
}
.troubleshootingtext li {
list-style-type: circle;
font-size: 25px;
padding-bottom: 5px;
}
.overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1000;
}
.block.response_body.json:hover {
cursor: pointer;
}
.backdrop {
color: blue;
}
#myModal {
height: 100%;
}
.modal-backdrop {
bottom: 0;
position: fixed;
}
.curl {
padding: 10px;
font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace;
font-size: 0.9em;
max-height: 400px;
margin-top: 5px;
overflow-y: auto;
background-color: #fcf6db;
border: 1px solid #e5e0c6;
border-radius: 4px;
}
.curl_title {
font-size: 1.1em;
margin: 0;
padding: 15px 0 5px;
font-family: 'Open Sans', 'Helvetica Neue', Arial, sans-serif;
font-weight: 500;
line-height: 1.1;
}
.footer {
display: none;
}
.swagger-section .swagger-ui-wrap h2 {
padding: 0;
}
h2 {
margin: 0;
margin-bottom: 5px;
}
.markdown p {
font-size: 15px;
font-family: 'Arvo', serif;
}
.swagger-section .swagger-ui-wrap .code {
font-size: 15px;
font-family: 'Arvo', serif;
}
.swagger-section .swagger-ui-wrap b {
font-family: 'Arvo', serif;
}
#signin:hover {
cursor: pointer;
}
.dropdown-menu {
padding: 15px;
}
.navbar-right .dropdown-menu {
left: 0;
right: auto;
}
#signinbutton {
width: 100%;
height: 32px;
font-size: 13px;
font-weight: bold;
color: #08b;
}
.navbar-default .nav > li .details {
color: #000000;
text-transform: none;
font-size: 15px;
font-weight: normal;
font-family: 'Open Sans', sans-serif;
font-style: italic;
line-height: 20px;
top: -2px;
}
.navbar-default .nav > li .details:hover {
color: black;
}
#signout {
width: 100%;
height: 32px;
font-size: 13px;
font-weight: bold;
color: #08b;
}

View File

@ -0,0 +1,14 @@
/* Google Font's Droid Sans */
@font-face {
font-family: 'Droid Sans';
font-style: normal;
font-weight: 400;
src: local('Droid Sans'), local('DroidSans'), url('../fonts/DroidSans.ttf'), format('truetype');
}
/* Google Font's Droid Sans Bold */
@font-face {
font-family: 'Droid Sans';
font-style: normal;
font-weight: 700;
src: local('Droid Sans Bold'), local('DroidSans-Bold'), url('../fonts/DroidSans-Bold.ttf'), format('truetype');
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 739 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 739 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 770 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 980 B

View File

@ -0,0 +1,102 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Vizir - Database API</title>
<link rel="icon" type="image/png" href="images/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="images/favicon-16x16.png" sizes="16x16" />
<link href='css/typography.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='css/reset.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='css/reset.css' media='print' rel='stylesheet' type='text/css'/>
<link href='css/print.css' media='print' rel='stylesheet' type='text/css'/>
<script src='lib/object-assign-pollyfill.js' type='text/javascript'></script>
<script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script>
<script src='lib/jquery.slideto.min.js' type='text/javascript'></script>
<script src='lib/jquery.wiggle.min.js' type='text/javascript'></script>
<script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script>
<script src='lib/handlebars-2.0.0.js' type='text/javascript'></script>
<script src='lib/js-yaml.min.js' type='text/javascript'></script>
<script src='lib/lodash.min.js' type='text/javascript'></script>
<script src='lib/backbone-min.js' type='text/javascript'></script>
<script src='js/swagger-ui.js' type='text/javascript'></script>
<script src='lib/highlight.9.1.0.pack.js' type='text/javascript'></script>
<script src='lib/highlight.9.1.0.pack_extended.js' type='text/javascript'></script>
<script src='lib/jsoneditor.min.js' type='text/javascript'></script>
<script src='lib/marked.js' type='text/javascript'></script>
<script src='lib/swagger-oauth.js' type='text/javascript'></script>
<!-- Some basic translations -->
<!-- <script src='lang/translator.js' type='text/javascript'></script> -->
<!-- <script src='lang/ru.js' type='text/javascript'></script> -->
<!-- <script src='lang/en.js' type='text/javascript'></script> -->
<script type="text/javascript">
$(function () {
var url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "http://vizirdb.7mi5uspdsy.us-west-2.elasticbeanstalk.com/doc/vizir-db.yaml";
}
hljs.configure({
highlightSizeThreshold: 5000
});
// Pre load translate...
if(window.SwaggerTranslator) {
window.SwaggerTranslator.translate();
}
window.swaggerUi = new SwaggerUi({
url: url,
dom_id: "swagger-ui-container",
supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'],
onComplete: function(swaggerApi, swaggerUi){
if(typeof initOAuth == "function") {
initOAuth({
clientId: "your-client-id",
clientSecret: "your-client-secret-if-required",
realm: "your-realms",
appName: "your-app-name",
scopeSeparator: ",",
additionalQueryStringParams: {}
});
}
if(window.SwaggerTranslator) {
window.SwaggerTranslator.translate();
}
},
onFailure: function(data) {
log("Unable to Load SwaggerUI");
},
docExpansion: "none",
jsonEditor: false,
defaultModelRendering: 'schema',
showRequestHeaders: false
});
window.swaggerUi.load();
function log() {
if ('console' in window) {
console.log.apply(console, arguments);
}
}
});
</script>
</head>
<body class="swagger-section">
<div id='header'>
<div class="swagger-ui-wrap">
<a id="logo" href="http://swagger.io"><img class="logo__img" alt="swagger" height="30" width="30" src="images/favicon-32x32.png" /><span class="logo__title">Vizir</span></a>
</div>
</div>
<div id="message-bar" class="swagger-ui-wrap" data-sw-translate>&nbsp;</div>
<div id="swagger-ui-container" class="swagger-ui-wrap"></div>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,56 @@
'use strict';
/* jshint quotmark: double */
window.SwaggerTranslator.learn({
"Warning: Deprecated":"Warning: Deprecated",
"Implementation Notes":"Implementation Notes",
"Response Class":"Response Class",
"Status":"Status",
"Parameters":"Parameters",
"Parameter":"Parameter",
"Value":"Value",
"Description":"Description",
"Parameter Type":"Parameter Type",
"Data Type":"Data Type",
"Response Messages":"Response Messages",
"HTTP Status Code":"HTTP Status Code",
"Reason":"Reason",
"Response Model":"Response Model",
"Request URL":"Request URL",
"Response Body":"Response Body",
"Response Code":"Response Code",
"Response Headers":"Response Headers",
"Hide Response":"Hide Response",
"Headers":"Headers",
"Try it out!":"Try it out!",
"Show/Hide":"Show/Hide",
"List Operations":"List Operations",
"Expand Operations":"Expand Operations",
"Raw":"Raw",
"can't parse JSON. Raw result":"can't parse JSON. Raw result",
"Example Value":"Example Value",
"Model Schema":"Model Schema",
"Model":"Model",
"Click to set as parameter value":"Click to set as parameter value",
"apply":"apply",
"Username":"Username",
"Password":"Password",
"Terms of service":"Terms of service",
"Created by":"Created by",
"See more at":"See more at",
"Contact the developer":"Contact the developer",
"api version":"api version",
"Response Content Type":"Response Content Type",
"Parameter content type:":"Parameter content type:",
"fetching resource":"fetching resource",
"fetching resource list":"fetching resource list",
"Explore":"Explore",
"Show Swagger Petstore Example Apis":"Show Swagger Petstore Example Apis",
"Can't read from server. It may not have the appropriate access-control-origin settings.":"Can't read from server. It may not have the appropriate access-control-origin settings.",
"Please specify the protocol for":"Please specify the protocol for",
"Can't read swagger JSON from":"Can't read swagger JSON from",
"Finished Loading Resource Information. Rendering Swagger UI":"Finished Loading Resource Information. Rendering Swagger UI",
"Unable to read api":"Unable to read api",
"from path":"from path",
"server returned":"server returned"
});

View File

@ -0,0 +1,53 @@
'use strict';
/* jshint quotmark: double */
window.SwaggerTranslator.learn({
"Warning: Deprecated":"Advertencia: Obsoleto",
"Implementation Notes":"Notas de implementación",
"Response Class":"Clase de la Respuesta",
"Status":"Status",
"Parameters":"Parámetros",
"Parameter":"Parámetro",
"Value":"Valor",
"Description":"Descripción",
"Parameter Type":"Tipo del Parámetro",
"Data Type":"Tipo del Dato",
"Response Messages":"Mensajes de la Respuesta",
"HTTP Status Code":"Código de Status HTTP",
"Reason":"Razón",
"Response Model":"Modelo de la Respuesta",
"Request URL":"URL de la Solicitud",
"Response Body":"Cuerpo de la Respuesta",
"Response Code":"Código de la Respuesta",
"Response Headers":"Encabezados de la Respuesta",
"Hide Response":"Ocultar Respuesta",
"Try it out!":"Pruébalo!",
"Show/Hide":"Mostrar/Ocultar",
"List Operations":"Listar Operaciones",
"Expand Operations":"Expandir Operaciones",
"Raw":"Crudo",
"can't parse JSON. Raw result":"no puede parsear el JSON. Resultado crudo",
"Example Value":"Valor de Ejemplo",
"Model Schema":"Esquema del Modelo",
"Model":"Modelo",
"apply":"aplicar",
"Username":"Nombre de usuario",
"Password":"Contraseña",
"Terms of service":"Términos de Servicio",
"Created by":"Creado por",
"See more at":"Ver más en",
"Contact the developer":"Contactar al desarrollador",
"api version":"versión de la api",
"Response Content Type":"Tipo de Contenido (Content Type) de la Respuesta",
"fetching resource":"buscando recurso",
"fetching resource list":"buscando lista del recurso",
"Explore":"Explorar",
"Show Swagger Petstore Example Apis":"Mostrar Api Ejemplo de Swagger Petstore",
"Can't read from server. It may not have the appropriate access-control-origin settings.":"No se puede leer del servidor. Tal vez no tiene la configuración de control de acceso de origen (access-control-origin) apropiado.",
"Please specify the protocol for":"Por favor, especificar el protocola para",
"Can't read swagger JSON from":"No se puede leer el JSON de swagger desde",
"Finished Loading Resource Information. Rendering Swagger UI":"Finalizada la carga del recurso de Información. Mostrando Swagger UI",
"Unable to read api":"No se puede leer la api",
"from path":"desde ruta",
"server returned":"el servidor retornó"
});

View File

@ -0,0 +1,54 @@
'use strict';
/* jshint quotmark: double */
window.SwaggerTranslator.learn({
"Warning: Deprecated":"Avertissement : Obsolète",
"Implementation Notes":"Notes d'implémentation",
"Response Class":"Classe de la réponse",
"Status":"Statut",
"Parameters":"Paramètres",
"Parameter":"Paramètre",
"Value":"Valeur",
"Description":"Description",
"Parameter Type":"Type du paramètre",
"Data Type":"Type de données",
"Response Messages":"Messages de la réponse",
"HTTP Status Code":"Code de statut HTTP",
"Reason":"Raison",
"Response Model":"Modèle de réponse",
"Request URL":"URL appelée",
"Response Body":"Corps de la réponse",
"Response Code":"Code de la réponse",
"Response Headers":"En-têtes de la réponse",
"Hide Response":"Cacher la réponse",
"Headers":"En-têtes",
"Try it out!":"Testez !",
"Show/Hide":"Afficher/Masquer",
"List Operations":"Liste des opérations",
"Expand Operations":"Développer les opérations",
"Raw":"Brut",
"can't parse JSON. Raw result":"impossible de décoder le JSON. Résultat brut",
"Example Value":"Exemple la valeur",
"Model Schema":"Définition du modèle",
"Model":"Modèle",
"apply":"appliquer",
"Username":"Nom d'utilisateur",
"Password":"Mot de passe",
"Terms of service":"Conditions de service",
"Created by":"Créé par",
"See more at":"Voir plus sur",
"Contact the developer":"Contacter le développeur",
"api version":"version de l'api",
"Response Content Type":"Content Type de la réponse",
"fetching resource":"récupération de la ressource",
"fetching resource list":"récupération de la liste de ressources",
"Explore":"Explorer",
"Show Swagger Petstore Example Apis":"Montrer les Apis de l'exemple Petstore de Swagger",
"Can't read from server. It may not have the appropriate access-control-origin settings.":"Impossible de lire à partir du serveur. Il se peut que les réglages access-control-origin ne soient pas appropriés.",
"Please specify the protocol for":"Veuillez spécifier un protocole pour",
"Can't read swagger JSON from":"Impossible de lire le JSON swagger à partir de",
"Finished Loading Resource Information. Rendering Swagger UI":"Chargement des informations terminé. Affichage de Swagger UI",
"Unable to read api":"Impossible de lire l'api",
"from path":"à partir du chemin",
"server returned":"réponse du serveur"
});

View File

@ -0,0 +1,56 @@
'use strict';
/* jshint quotmark: double */
window.SwaggerTranslator.learn({
"Warning: Deprecated":"ყურადღება: აღარ გამოიყენება",
"Implementation Notes":"იმპლემენტაციის აღწერა",
"Response Class":"რესპონს კლასი",
"Status":"სტატუსი",
"Parameters":"პარამეტრები",
"Parameter":"პარამეტრი",
"Value":"მნიშვნელობა",
"Description":"აღწერა",
"Parameter Type":"პარამეტრის ტიპი",
"Data Type":"მონაცემის ტიპი",
"Response Messages":"პასუხი",
"HTTP Status Code":"HTTP სტატუსი",
"Reason":"მიზეზი",
"Response Model":"რესპონს მოდელი",
"Request URL":"მოთხოვნის URL",
"Response Body":"პასუხის სხეული",
"Response Code":"პასუხის კოდი",
"Response Headers":"პასუხის ჰედერები",
"Hide Response":"დამალე პასუხი",
"Headers":"ჰედერები",
"Try it out!":"ცადე !",
"Show/Hide":"გამოჩენა/დამალვა",
"List Operations":"ოპერაციების სია",
"Expand Operations":"ოპერაციები ვრცლად",
"Raw":"ნედლი",
"can't parse JSON. Raw result":"JSON-ის დამუშავება ვერ მოხერხდა. ნედლი პასუხი",
"Example Value":"მაგალითი",
"Model Schema":"მოდელის სტრუქტურა",
"Model":"მოდელი",
"Click to set as parameter value":"პარამეტრისთვის მნიშვნელობის მისანიჭებლად, დააკლიკე",
"apply":"გამოყენება",
"Username":"მოხმარებელი",
"Password":"პაროლი",
"Terms of service":"მომსახურების პირობები",
"Created by":"შექმნა",
"See more at":"ნახე ვრცლად",
"Contact the developer":"დაუკავშირდი დეველოპერს",
"api version":"api ვერსია",
"Response Content Type":"პასუხის კონტენტის ტიპი",
"Parameter content type:":"პარამეტრის კონტენტის ტიპი:",
"fetching resource":"რესურსების მიღება",
"fetching resource list":"რესურსების სიის მიღება",
"Explore":"ნახვა",
"Show Swagger Petstore Example Apis":"ნახე Swagger Petstore სამაგალითო Api",
"Can't read from server. It may not have the appropriate access-control-origin settings.":"სერვერთან დაკავშირება ვერ ხერხდება. შეამოწმეთ access-control-origin.",
"Please specify the protocol for":"მიუთითეთ პროტოკოლი",
"Can't read swagger JSON from":"swagger JSON წაკითხვა ვერ მოხერხდა",
"Finished Loading Resource Information. Rendering Swagger UI":"რესურსების ჩატვირთვა სრულდება. Swagger UI რენდერდება",
"Unable to read api":"api წაკითხვა ვერ მოხერხდა",
"from path":"მისამართიდან",
"server returned":"სერვერმა დააბრუნა"
});

View File

@ -0,0 +1,52 @@
'use strict';
/* jshint quotmark: double */
window.SwaggerTranslator.learn({
"Warning: Deprecated":"Attenzione: Deprecato",
"Implementation Notes":"Note di implementazione",
"Response Class":"Classe della risposta",
"Status":"Stato",
"Parameters":"Parametri",
"Parameter":"Parametro",
"Value":"Valore",
"Description":"Descrizione",
"Parameter Type":"Tipo di parametro",
"Data Type":"Tipo di dato",
"Response Messages":"Messaggi della risposta",
"HTTP Status Code":"Codice stato HTTP",
"Reason":"Motivo",
"Response Model":"Modello di risposta",
"Request URL":"URL della richiesta",
"Response Body":"Corpo della risposta",
"Response Code":"Oggetto della risposta",
"Response Headers":"Intestazioni della risposta",
"Hide Response":"Nascondi risposta",
"Try it out!":"Provalo!",
"Show/Hide":"Mostra/Nascondi",
"List Operations":"Mostra operazioni",
"Expand Operations":"Espandi operazioni",
"Raw":"Grezzo (raw)",
"can't parse JSON. Raw result":"non è possibile parsare il JSON. Risultato grezzo (raw).",
"Model Schema":"Schema del modello",
"Model":"Modello",
"apply":"applica",
"Username":"Nome utente",
"Password":"Password",
"Terms of service":"Condizioni del servizio",
"Created by":"Creato da",
"See more at":"Informazioni aggiuntive:",
"Contact the developer":"Contatta lo sviluppatore",
"api version":"versione api",
"Response Content Type":"Tipo di contenuto (content type) della risposta",
"fetching resource":"recuperando la risorsa",
"fetching resource list":"recuperando lista risorse",
"Explore":"Esplora",
"Show Swagger Petstore Example Apis":"Mostra le api di esempio di Swagger Petstore",
"Can't read from server. It may not have the appropriate access-control-origin settings.":"Non è possibile leggere dal server. Potrebbe non avere le impostazioni di controllo accesso origine (access-control-origin) appropriate.",
"Please specify the protocol for":"Si prega di specificare il protocollo per",
"Can't read swagger JSON from":"Impossibile leggere JSON swagger da:",
"Finished Loading Resource Information. Rendering Swagger UI":"Lettura informazioni risorse termianta. Swagger UI viene mostrata",
"Unable to read api":"Impossibile leggere la api",
"from path":"da cartella",
"server returned":"il server ha restituito"
});

View File

@ -0,0 +1,53 @@
'use strict';
/* jshint quotmark: double */
window.SwaggerTranslator.learn({
"Warning: Deprecated":"警告: 廃止予定",
"Implementation Notes":"実装メモ",
"Response Class":"レスポンスクラス",
"Status":"ステータス",
"Parameters":"パラメータ群",
"Parameter":"パラメータ",
"Value":"値",
"Description":"説明",
"Parameter Type":"パラメータタイプ",
"Data Type":"データタイプ",
"Response Messages":"レスポンスメッセージ",
"HTTP Status Code":"HTTPステータスコード",
"Reason":"理由",
"Response Model":"レスポンスモデル",
"Request URL":"リクエストURL",
"Response Body":"レスポンスボディ",
"Response Code":"レスポンスコード",
"Response Headers":"レスポンスヘッダ",
"Hide Response":"レスポンスを隠す",
"Headers":"ヘッダ",
"Try it out!":"実際に実行!",
"Show/Hide":"表示/非表示",
"List Operations":"操作一覧",
"Expand Operations":"操作の展開",
"Raw":"Raw",
"can't parse JSON. Raw result":"JSONへ解釈できません. 未加工の結果",
"Model Schema":"モデルスキーマ",
"Model":"モデル",
"apply":"実行",
"Username":"ユーザ名",
"Password":"パスワード",
"Terms of service":"サービス利用規約",
"Created by":"Created by",
"See more at":"See more at",
"Contact the developer":"開発者に連絡",
"api version":"APIバージョン",
"Response Content Type":"レスポンス コンテンツタイプ",
"fetching resource":"リソースの取得",
"fetching resource list":"リソース一覧の取得",
"Explore":"Explore",
"Show Swagger Petstore Example Apis":"SwaggerペットストアAPIの表示",
"Can't read from server. It may not have the appropriate access-control-origin settings.":"サーバから読み込めません. 適切なaccess-control-origin設定を持っていない可能性があります.",
"Please specify the protocol for":"プロトコルを指定してください",
"Can't read swagger JSON from":"次からswagger JSONを読み込めません",
"Finished Loading Resource Information. Rendering Swagger UI":"リソース情報の読み込みが完了しました. Swagger UIを描画しています",
"Unable to read api":"APIを読み込めません",
"from path":"次のパスから",
"server returned":"サーバからの返答"
});

View File

@ -0,0 +1,53 @@
'use strict';
/* jshint quotmark: double */
window.SwaggerTranslator.learn({
"Warning: Deprecated":"Uwaga: Wycofane",
"Implementation Notes":"Uwagi Implementacji",
"Response Class":"Klasa Odpowiedzi",
"Status":"Status",
"Parameters":"Parametry",
"Parameter":"Parametr",
"Value":"Wartość",
"Description":"Opis",
"Parameter Type":"Typ Parametru",
"Data Type":"Typ Danych",
"Response Messages":"Wiadomości Odpowiedzi",
"HTTP Status Code":"Kod Statusu HTTP",
"Reason":"Przyczyna",
"Response Model":"Model Odpowiedzi",
"Request URL":"URL Wywołania",
"Response Body":"Treść Odpowiedzi",
"Response Code":"Kod Odpowiedzi",
"Response Headers":"Nagłówki Odpowiedzi",
"Hide Response":"Ukryj Odpowiedź",
"Headers":"Nagłówki",
"Try it out!":"Wypróbuj!",
"Show/Hide":"Pokaż/Ukryj",
"List Operations":"Lista Operacji",
"Expand Operations":"Rozwiń Operacje",
"Raw":"Nieprzetworzone",
"can't parse JSON. Raw result":"nie można przetworzyć pliku JSON. Nieprzetworzone dane",
"Model Schema":"Schemat Modelu",
"Model":"Model",
"apply":"użyj",
"Username":"Nazwa użytkownika",
"Password":"Hasło",
"Terms of service":"Warunki używania",
"Created by":"Utworzone przez",
"See more at":"Zobacz więcej na",
"Contact the developer":"Kontakt z deweloperem",
"api version":"wersja api",
"Response Content Type":"Typ Zasobu Odpowiedzi",
"fetching resource":"ładowanie zasobu",
"fetching resource list":"ładowanie listy zasobów",
"Explore":"Eksploruj",
"Show Swagger Petstore Example Apis":"Pokaż Przykładowe Api Swagger Petstore",
"Can't read from server. It may not have the appropriate access-control-origin settings.":"Brak połączenia z serwerem. Może on nie mieć odpowiednich ustawień access-control-origin.",
"Please specify the protocol for":"Proszę podać protokół dla",
"Can't read swagger JSON from":"Nie można odczytać swagger JSON z",
"Finished Loading Resource Information. Rendering Swagger UI":"Ukończono Ładowanie Informacji o Zasobie. Renderowanie Swagger UI",
"Unable to read api":"Nie można odczytać api",
"from path":"ze ścieżki",
"server returned":"serwer zwrócił"
});

View File

@ -0,0 +1,53 @@
'use strict';
/* jshint quotmark: double */
window.SwaggerTranslator.learn({
"Warning: Deprecated":"Aviso: Depreciado",
"Implementation Notes":"Notas de Implementação",
"Response Class":"Classe de resposta",
"Status":"Status",
"Parameters":"Parâmetros",
"Parameter":"Parâmetro",
"Value":"Valor",
"Description":"Descrição",
"Parameter Type":"Tipo de parâmetro",
"Data Type":"Tipo de dados",
"Response Messages":"Mensagens de resposta",
"HTTP Status Code":"Código de status HTTP",
"Reason":"Razão",
"Response Model":"Modelo resposta",
"Request URL":"URL requisição",
"Response Body":"Corpo da resposta",
"Response Code":"Código da resposta",
"Response Headers":"Cabeçalho da resposta",
"Headers":"Cabeçalhos",
"Hide Response":"Esconder resposta",
"Try it out!":"Tente agora!",
"Show/Hide":"Mostrar/Esconder",
"List Operations":"Listar operações",
"Expand Operations":"Expandir operações",
"Raw":"Cru",
"can't parse JSON. Raw result":"Falha ao analisar JSON. Resulto cru",
"Model Schema":"Modelo esquema",
"Model":"Modelo",
"apply":"Aplicar",
"Username":"Usuário",
"Password":"Senha",
"Terms of service":"Termos do serviço",
"Created by":"Criado por",
"See more at":"Veja mais em",
"Contact the developer":"Contate o desenvolvedor",
"api version":"Versão api",
"Response Content Type":"Tipo de conteúdo da resposta",
"fetching resource":"busca recurso",
"fetching resource list":"buscando lista de recursos",
"Explore":"Explorar",
"Show Swagger Petstore Example Apis":"Show Swagger Petstore Example Apis",
"Can't read from server. It may not have the appropriate access-control-origin settings.":"Não é possível ler do servidor. Pode não ter as apropriadas configurações access-control-origin",
"Please specify the protocol for":"Por favor especifique o protocolo",
"Can't read swagger JSON from":"Não é possível ler o JSON Swagger de",
"Finished Loading Resource Information. Rendering Swagger UI":"Carregar informação de recurso finalizada. Renderizando Swagger UI",
"Unable to read api":"Não foi possível ler api",
"from path":"do caminho",
"server returned":"servidor retornou"
});

View File

@ -0,0 +1,56 @@
'use strict';
/* jshint quotmark: double */
window.SwaggerTranslator.learn({
"Warning: Deprecated":"Предупреждение: Устарело",
"Implementation Notes":"Заметки",
"Response Class":"Пример ответа",
"Status":"Статус",
"Parameters":"Параметры",
"Parameter":"Параметр",
"Value":"Значение",
"Description":"Описание",
"Parameter Type":"Тип параметра",
"Data Type":"Тип данных",
"HTTP Status Code":"HTTP код",
"Reason":"Причина",
"Response Model":"Структура ответа",
"Request URL":"URL запроса",
"Response Body":"Тело ответа",
"Response Code":"HTTP код ответа",
"Response Headers":"Заголовки ответа",
"Hide Response":"Спрятать ответ",
"Headers":"Заголовки",
"Response Messages":"Что может прийти в ответ",
"Try it out!":"Попробовать!",
"Show/Hide":"Показать/Скрыть",
"List Operations":"Операции кратко",
"Expand Operations":"Операции подробно",
"Raw":"В сыром виде",
"can't parse JSON. Raw result":"Не удается распарсить ответ:",
"Example Value":"Пример",
"Model Schema":"Структура",
"Model":"Описание",
"Click to set as parameter value":"Нажмите, чтобы испльзовать в качестве значения параметра",
"apply":"применить",
"Username":"Имя пользователя",
"Password":"Пароль",
"Terms of service":"Условия использования",
"Created by":"Разработано",
"See more at":"Еще тут",
"Contact the developer":"Связаться с разработчиком",
"api version":"Версия API",
"Response Content Type":"Content Type ответа",
"Parameter content type:":"Content Type параметра:",
"fetching resource":"Получение ресурса",
"fetching resource list":"Получение ресурсов",
"Explore":"Показать",
"Show Swagger Petstore Example Apis":"Показать примеры АПИ",
"Can't read from server. It may not have the appropriate access-control-origin settings.":"Не удается получить ответ от сервера. Возможно, проблема с настройками доступа",
"Please specify the protocol for":"Пожалуйста, укажите протокол для",
"Can't read swagger JSON from":"Не получается прочитать swagger json из",
"Finished Loading Resource Information. Rendering Swagger UI":"Загрузка информации о ресурсах завершена. Рендерим",
"Unable to read api":"Не удалось прочитать api",
"from path":"по адресу",
"server returned":"сервер сказал"
});

View File

@ -0,0 +1,53 @@
'use strict';
/* jshint quotmark: double */
window.SwaggerTranslator.learn({
"Warning: Deprecated":"Uyarı: Deprecated",
"Implementation Notes":"Gerçekleştirim Notları",
"Response Class":"Dönen Sınıf",
"Status":"Statü",
"Parameters":"Parametreler",
"Parameter":"Parametre",
"Value":"Değer",
"Description":"Açıklama",
"Parameter Type":"Parametre Tipi",
"Data Type":"Veri Tipi",
"Response Messages":"Dönüş Mesajı",
"HTTP Status Code":"HTTP Statü Kodu",
"Reason":"Gerekçe",
"Response Model":"Dönüş Modeli",
"Request URL":"İstek URL",
"Response Body":"Dönüş İçeriği",
"Response Code":"Dönüş Kodu",
"Response Headers":"Dönüş Üst Bilgileri",
"Hide Response":"Dönüşü Gizle",
"Headers":"Üst Bilgiler",
"Try it out!":"Dene!",
"Show/Hide":"Göster/Gizle",
"List Operations":"Operasyonları Listele",
"Expand Operations":"Operasyonları Aç",
"Raw":"Ham",
"can't parse JSON. Raw result":"JSON çözümlenemiyor. Ham sonuç",
"Model Schema":"Model Şema",
"Model":"Model",
"apply":"uygula",
"Username":"Kullanıcı Adı",
"Password":"Parola",
"Terms of service":"Servis şartları",
"Created by":"Oluşturan",
"See more at":"Daha fazlası için",
"Contact the developer":"Geliştirici ile İletişime Geçin",
"api version":"api versiyon",
"Response Content Type":"Dönüş İçerik Tipi",
"fetching resource":"kaynak getiriliyor",
"fetching resource list":"kaynak listesi getiriliyor",
"Explore":"Keşfet",
"Show Swagger Petstore Example Apis":"Swagger Petstore Örnek Api'yi Gör",
"Can't read from server. It may not have the appropriate access-control-origin settings.":"Sunucudan okuma yapılamıyor. Sunucu access-control-origin ayarlarınızı kontrol edin.",
"Please specify the protocol for":"Lütfen istenen adres için protokol belirtiniz",
"Can't read swagger JSON from":"Swagger JSON bu kaynaktan okunamıyor",
"Finished Loading Resource Information. Rendering Swagger UI":"Kaynak baglantısı tamamlandı. Swagger UI gösterime hazırlanıyor",
"Unable to read api":"api okunamadı",
"from path":"yoldan",
"server returned":"sunucuya dönüldü"
});

View File

@ -0,0 +1,39 @@
'use strict';
/**
* Translator for documentation pages.
*
* To enable translation you should include one of language-files in your index.html
* after <script src='lang/translator.js' type='text/javascript'></script>.
* For example - <script src='lang/ru.js' type='text/javascript'></script>
*
* If you wish to translate some new texsts you should do two things:
* 1. Add a new phrase pair ("New Phrase": "New Translation") into your language file (for example lang/ru.js). It will be great if you add it in other language files too.
* 2. Mark that text it templates this way <anyHtmlTag data-sw-translate>New Phrase</anyHtmlTag> or <anyHtmlTag data-sw-translate value='New Phrase'/>.
* The main thing here is attribute data-sw-translate. Only inner html, title-attribute and value-attribute are going to translate.
*
*/
window.SwaggerTranslator = {
_words:[],
translate: function(sel) {
var $this = this;
sel = sel || '[data-sw-translate]';
$(sel).each(function() {
$(this).html($this._tryTranslate($(this).html()));
$(this).val($this._tryTranslate($(this).val()));
$(this).attr('title', $this._tryTranslate($(this).attr('title')));
});
},
_tryTranslate: function(word) {
return this._words[$.trim(word)] !== undefined ? this._words[$.trim(word)] : word;
},
learn: function(wordsMap) {
this._words = wordsMap;
}
};

View File

@ -0,0 +1,53 @@
'use strict';
/* jshint quotmark: double */
window.SwaggerTranslator.learn({
"Warning: Deprecated":"警告:已过时",
"Implementation Notes":"实现备注",
"Response Class":"响应类",
"Status":"状态",
"Parameters":"参数",
"Parameter":"参数",
"Value":"值",
"Description":"描述",
"Parameter Type":"参数类型",
"Data Type":"数据类型",
"Response Messages":"响应消息",
"HTTP Status Code":"HTTP状态码",
"Reason":"原因",
"Response Model":"响应模型",
"Request URL":"请求URL",
"Response Body":"响应体",
"Response Code":"响应码",
"Response Headers":"响应头",
"Hide Response":"隐藏响应",
"Headers":"头",
"Try it out!":"试一下!",
"Show/Hide":"显示/隐藏",
"List Operations":"显示操作",
"Expand Operations":"展开操作",
"Raw":"原始",
"can't parse JSON. Raw result":"无法解析JSON. 原始结果",
"Model Schema":"模型架构",
"Model":"模型",
"apply":"应用",
"Username":"用户名",
"Password":"密码",
"Terms of service":"服务条款",
"Created by":"创建者",
"See more at":"查看更多:",
"Contact the developer":"联系开发者",
"api version":"api版本",
"Response Content Type":"响应Content Type",
"fetching resource":"正在获取资源",
"fetching resource list":"正在获取资源列表",
"Explore":"浏览",
"Show Swagger Petstore Example Apis":"显示 Swagger Petstore 示例 Apis",
"Can't read from server. It may not have the appropriate access-control-origin settings.":"无法从服务器读取。可能没有正确设置access-control-origin。",
"Please specify the protocol for":"请指定协议:",
"Can't read swagger JSON from":"无法读取swagger JSON于",
"Finished Loading Resource Information. Rendering Swagger UI":"已加载资源信息。正在渲染Swagger UI",
"Unable to read api":"无法读取api",
"from path":"从路径",
"server returned":"服务器返回"
});

15
src/main/webapp/doc/lib/backbone-min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,34 @@
'use strict';
(function () {
var configure, highlightBlock;
configure = hljs.configure;
// "extending" hljs.configure method
hljs.configure = function _configure (options) {
var size = options.highlightSizeThreshold;
// added highlightSizeThreshold option to set maximum size
// of processed string. Set to null if not a number
hljs.highlightSizeThreshold = size === +size ? size : null;
configure.call(this, options);
};
highlightBlock = hljs.highlightBlock;
// "extending" hljs.highlightBlock method
hljs.highlightBlock = function _highlightBlock (el) {
var innerHTML = el.innerHTML;
var size = hljs.highlightSizeThreshold;
// check if highlightSizeThreshold is not set or element innerHTML
// is less than set option highlightSizeThreshold
if (size == null || size > innerHTML.length) {
// proceed with hljs.highlightBlock
highlightBlock.call(hljs, el);
}
};
})();

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,18 @@
/*
* jQuery BBQ: Back Button & Query Library - v1.2.1 - 2/17/2010
* http://benalman.com/projects/jquery-bbq-plugin/
*
* Copyright (c) 2010 "Cowboy" Ben Alman
* Dual licensed under the MIT and GPL licenses.
* http://benalman.com/about/license/
*/
(function($,p){var i,m=Array.prototype.slice,r=decodeURIComponent,a=$.param,c,l,v,b=$.bbq=$.bbq||{},q,u,j,e=$.event.special,d="hashchange",A="querystring",D="fragment",y="elemUrlAttr",g="location",k="href",t="src",x=/^.*\?|#.*$/g,w=/^.*\#/,h,C={};function E(F){return typeof F==="string"}function B(G){var F=m.call(arguments,1);return function(){return G.apply(this,F.concat(m.call(arguments)))}}function n(F){return F.replace(/^[^#]*#?(.*)$/,"$1")}function o(F){return F.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/,"$1")}function f(H,M,F,I,G){var O,L,K,N,J;if(I!==i){K=F.match(H?/^([^#]*)\#?(.*)$/:/^([^#?]*)\??([^#]*)(#?.*)/);J=K[3]||"";if(G===2&&E(I)){L=I.replace(H?w:x,"")}else{N=l(K[2]);I=E(I)?l[H?D:A](I):I;L=G===2?I:G===1?$.extend({},I,N):$.extend({},N,I);L=a(L);if(H){L=L.replace(h,r)}}O=K[1]+(H?"#":L||!K[1]?"?":"")+L+J}else{O=M(F!==i?F:p[g][k])}return O}a[A]=B(f,0,o);a[D]=c=B(f,1,n);c.noEscape=function(G){G=G||"";var F=$.map(G.split(""),encodeURIComponent);h=new RegExp(F.join("|"),"g")};c.noEscape(",/");$.deparam=l=function(I,F){var H={},G={"true":!0,"false":!1,"null":null};$.each(I.replace(/\+/g," ").split("&"),function(L,Q){var K=Q.split("="),P=r(K[0]),J,O=H,M=0,R=P.split("]["),N=R.length-1;if(/\[/.test(R[0])&&/\]$/.test(R[N])){R[N]=R[N].replace(/\]$/,"");R=R.shift().split("[").concat(R);N=R.length-1}else{N=0}if(K.length===2){J=r(K[1]);if(F){J=J&&!isNaN(J)?+J:J==="undefined"?i:G[J]!==i?G[J]:J}if(N){for(;M<=N;M++){P=R[M]===""?O.length:R[M];O=O[P]=M<N?O[P]||(R[M+1]&&isNaN(R[M+1])?{}:[]):J}}else{if($.isArray(H[P])){H[P].push(J)}else{if(H[P]!==i){H[P]=[H[P],J]}else{H[P]=J}}}}else{if(P){H[P]=F?i:""}}});return H};function z(H,F,G){if(F===i||typeof F==="boolean"){G=F;F=a[H?D:A]()}else{F=E(F)?F.replace(H?w:x,""):F}return l(F,G)}l[A]=B(z,0);l[D]=v=B(z,1);$[y]||($[y]=function(F){return $.extend(C,F)})({a:k,base:k,iframe:t,img:t,input:t,form:"action",link:k,script:t});j=$[y];function s(I,G,H,F){if(!E(H)&&typeof H!=="object"){F=H;H=G;G=i}return this.each(function(){var L=$(this),J=G||j()[(this.nodeName||"").toLowerCase()]||"",K=J&&L.attr(J)||"";L.attr(J,a[I](K,H,F))})}$.fn[A]=B(s,A);$.fn[D]=B(s,D);b.pushState=q=function(I,F){if(E(I)&&/^#/.test(I)&&F===i){F=2}var H=I!==i,G=c(p[g][k],H?I:{},H?F:2);p[g][k]=G+(/#/.test(G)?"":"#")};b.getState=u=function(F,G){return F===i||typeof F==="boolean"?v(F):v(G)[F]};b.removeState=function(F){var G={};if(F!==i){G=u();$.each($.isArray(F)?F:arguments,function(I,H){delete G[H]})}q(G,2)};e[d]=$.extend(e[d],{add:function(F){var H;function G(J){var I=J[D]=c();J.getState=function(K,L){return K===i||typeof K==="boolean"?l(I,K):l(I,L)[K]};H.apply(this,arguments)}if($.isFunction(F)){H=F;return G}else{H=F.handler;F.handler=G}}})})(jQuery,this);
/*
* jQuery hashchange event - v1.2 - 2/11/2010
* http://benalman.com/projects/jquery-hashchange-plugin/
*
* Copyright (c) 2010 "Cowboy" Ben Alman
* Dual licensed under the MIT and GPL licenses.
* http://benalman.com/about/license/
*/
(function($,i,b){var j,k=$.event.special,c="location",d="hashchange",l="href",f=$.browser,g=document.documentMode,h=f.msie&&(g===b||g<8),e="on"+d in i&&!h;function a(m){m=m||i[c][l];return m.replace(/^[^#]*#?(.*)$/,"$1")}$[d+"Delay"]=100;k[d]=$.extend(k[d],{setup:function(){if(e){return false}$(j.start)},teardown:function(){if(e){return false}$(j.stop)}});j=(function(){var m={},r,n,o,q;function p(){o=q=function(s){return s};if(h){n=$('<iframe src="javascript:0"/>').hide().insertAfter("body")[0].contentWindow;q=function(){return a(n.document[c][l])};o=function(u,s){if(u!==s){var t=n.document;t.open().close();t[c].hash="#"+u}};o(a())}}m.start=function(){if(r){return}var t=a();o||p();(function s(){var v=a(),u=q(t);if(v!==t){o(t=v,u);$(i).trigger(d)}else{if(u!==t){i[c][l]=i[c][l].replace(/#.*/,"")+"#"+u}}r=setTimeout(s,$[d+"Delay"])})()};m.stop=function(){if(!n){r&&clearTimeout(r);r=0}};return m})()})(jQuery,this);

View File

@ -0,0 +1 @@
(function(b){b.fn.slideto=function(a){a=b.extend({slide_duration:"slow",highlight_duration:3E3,highlight:true,highlight_color:"#FFFF99"},a);return this.each(function(){obj=b(this);b("body").animate({scrollTop:obj.offset().top},a.slide_duration,function(){a.highlight&&b.ui.version&&obj.effect("highlight",{color:a.highlight_color},a.highlight_duration)})})}})(jQuery);

View File

@ -0,0 +1,8 @@
/*
jQuery Wiggle
Author: WonderGroup, Jordan Thomas
URL: http://labs.wondergroup.com/demos/mini-ui/index.html
License: MIT (http://en.wikipedia.org/wiki/MIT_License)
*/
jQuery.fn.wiggle=function(o){var d={speed:50,wiggles:3,travel:5,callback:null};var o=jQuery.extend(d,o);return this.each(function(){var cache=this;var wrap=jQuery(this).wrap('<div class="wiggle-wrap"></div>').css("position","relative");var calls=0;for(i=1;i<=o.wiggles;i++){jQuery(this).animate({left:"-="+o.travel},o.speed).animate({left:"+="+o.travel*2},o.speed*2).animate({left:"-="+o.travel},o.speed,function(){calls++;if(jQuery(cache).parent().hasClass('wiggle-wrap')){jQuery(cache).parent().replaceWith(cache);}
if(calls==o.wiggles&&jQuery.isFunction(o.callback)){o.callback();}});}});};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

102
src/main/webapp/doc/lib/lodash.min.js vendored Normal file
View File

@ -0,0 +1,102 @@
/**
* @license
* lodash 3.10.1 (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
* Build: `lodash compat -o ./lodash.js`
*/
;(function(){function n(n,t){if(n!==t){var r=null===n,e=n===w,u=n===n,o=null===t,i=t===w,f=t===t;if(n>t&&!o||!u||r&&!i&&f||e&&f)return 1;if(n<t&&!r||!f||o&&!e&&u||i&&u)return-1}return 0}function t(n,t,r){for(var e=n.length,u=r?e:-1;r?u--:++u<e;)if(t(n[u],u,n))return u;return-1}function r(n,t,r){if(t!==t)return p(n,r);r-=1;for(var e=n.length;++r<e;)if(n[r]===t)return r;return-1}function e(n){return typeof n=="function"||false}function u(n){return null==n?"":n+""}function o(n,t){for(var r=-1,e=n.length;++r<e&&-1<t.indexOf(n.charAt(r)););
return r}function i(n,t){for(var r=n.length;r--&&-1<t.indexOf(n.charAt(r)););return r}function f(t,r){return n(t.a,r.a)||t.b-r.b}function a(n){return Nn[n]}function c(n){return Tn[n]}function l(n,t,r){return t?n=Bn[n]:r&&(n=Dn[n]),"\\"+n}function s(n){return"\\"+Dn[n]}function p(n,t,r){var e=n.length;for(t+=r?0:-1;r?t--:++t<e;){var u=n[t];if(u!==u)return t}return-1}function h(n){return!!n&&typeof n=="object"}function _(n){return 160>=n&&9<=n&&13>=n||32==n||160==n||5760==n||6158==n||8192<=n&&(8202>=n||8232==n||8233==n||8239==n||8287==n||12288==n||65279==n);
}function v(n,t){for(var r=-1,e=n.length,u=-1,o=[];++r<e;)n[r]===t&&(n[r]=P,o[++u]=r);return o}function g(n){for(var t=-1,r=n.length;++t<r&&_(n.charCodeAt(t)););return t}function y(n){for(var t=n.length;t--&&_(n.charCodeAt(t)););return t}function d(n){return Pn[n]}function m(_){function Nn(n){if(h(n)&&!(Wo(n)||n instanceof zn)){if(n instanceof Pn)return n;if(eu.call(n,"__chain__")&&eu.call(n,"__wrapped__"))return qr(n)}return new Pn(n)}function Tn(){}function Pn(n,t,r){this.__wrapped__=n,this.__actions__=r||[],
this.__chain__=!!t}function zn(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=Cu,this.__views__=[]}function Bn(){this.__data__={}}function Dn(n){var t=n?n.length:0;for(this.data={hash:mu(null),set:new hu};t--;)this.push(n[t])}function Mn(n,t){var r=n.data;return(typeof t=="string"||de(t)?r.set.has(t):r.hash[t])?0:-1}function qn(n,t){var r=-1,e=n.length;for(t||(t=De(e));++r<e;)t[r]=n[r];return t}function Kn(n,t){for(var r=-1,e=n.length;++r<e&&false!==t(n[r],r,n););
return n}function Vn(n,t){for(var r=-1,e=n.length;++r<e;)if(!t(n[r],r,n))return false;return true}function Zn(n,t){for(var r=-1,e=n.length,u=-1,o=[];++r<e;){var i=n[r];t(i,r,n)&&(o[++u]=i)}return o}function Xn(n,t){for(var r=-1,e=n.length,u=De(e);++r<e;)u[r]=t(n[r],r,n);return u}function Hn(n,t){for(var r=-1,e=t.length,u=n.length;++r<e;)n[u+r]=t[r];return n}function Qn(n,t,r,e){var u=-1,o=n.length;for(e&&o&&(r=n[++u]);++u<o;)r=t(r,n[u],u,n);return r}function nt(n,t){for(var r=-1,e=n.length;++r<e;)if(t(n[r],r,n))return true;
return false}function tt(n,t,r,e){return n!==w&&eu.call(e,r)?n:t}function rt(n,t,r){for(var e=-1,u=Ko(t),o=u.length;++e<o;){var i=u[e],f=n[i],a=r(f,t[i],i,n,t);(a===a?a===f:f!==f)&&(f!==w||i in n)||(n[i]=a)}return n}function et(n,t){return null==t?n:ot(t,Ko(t),n)}function ut(n,t){for(var r=-1,e=null==n,u=!e&&Sr(n),o=u?n.length:0,i=t.length,f=De(i);++r<i;){var a=t[r];f[r]=u?Ur(a,o)?n[a]:w:e?w:n[a]}return f}function ot(n,t,r){r||(r={});for(var e=-1,u=t.length;++e<u;){var o=t[e];r[o]=n[o]}return r}function it(n,t,r){
var e=typeof n;return"function"==e?t===w?n:Dt(n,t,r):null==n?Ne:"object"==e?At(n):t===w?Be(n):jt(n,t)}function ft(n,t,r,e,u,o,i){var f;if(r&&(f=u?r(n,e,u):r(n)),f!==w)return f;if(!de(n))return n;if(e=Wo(n)){if(f=Ir(n),!t)return qn(n,f)}else{var a=ou.call(n),c=a==K;if(a!=Z&&a!=z&&(!c||u))return Ln[a]?Er(n,a,t):u?n:{};if(Gn(n))return u?n:{};if(f=Rr(c?{}:n),!t)return et(f,n)}for(o||(o=[]),i||(i=[]),u=o.length;u--;)if(o[u]==n)return i[u];return o.push(n),i.push(f),(e?Kn:gt)(n,function(e,u){f[u]=ft(e,t,r,u,n,o,i);
}),f}function at(n,t,r){if(typeof n!="function")throw new Xe(T);return _u(function(){n.apply(w,r)},t)}function ct(n,t){var e=n?n.length:0,u=[];if(!e)return u;var o=-1,i=jr(),f=i===r,a=f&&t.length>=F&&mu&&hu?new Dn(t):null,c=t.length;a&&(i=Mn,f=false,t=a);n:for(;++o<e;)if(a=n[o],f&&a===a){for(var l=c;l--;)if(t[l]===a)continue n;u.push(a)}else 0>i(t,a,0)&&u.push(a);return u}function lt(n,t){var r=true;return zu(n,function(n,e,u){return r=!!t(n,e,u)}),r}function st(n,t,r,e){var u=e,o=u;return zu(n,function(n,i,f){
i=+t(n,i,f),(r(i,u)||i===e&&i===o)&&(u=i,o=n)}),o}function pt(n,t){var r=[];return zu(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function ht(n,t,r,e){var u;return r(n,function(n,r,o){return t(n,r,o)?(u=e?r:n,false):void 0}),u}function _t(n,t,r,e){e||(e=[]);for(var u=-1,o=n.length;++u<o;){var i=n[u];h(i)&&Sr(i)&&(r||Wo(i)||_e(i))?t?_t(i,t,r,e):Hn(e,i):r||(e[e.length]=i)}return e}function vt(n,t){return Du(n,t,Ee)}function gt(n,t){return Du(n,t,Ko)}function yt(n,t){return Mu(n,t,Ko)}function dt(n,t){for(var r=-1,e=t.length,u=-1,o=[];++r<e;){
var i=t[r];ye(n[i])&&(o[++u]=i)}return o}function mt(n,t,r){if(null!=n){n=Dr(n),r!==w&&r in n&&(t=[r]),r=0;for(var e=t.length;null!=n&&r<e;)n=Dr(n)[t[r++]];return r&&r==e?n:w}}function wt(n,t,r,e,u,o){if(n===t)return true;if(null==n||null==t||!de(n)&&!h(t))return n!==n&&t!==t;n:{var i=wt,f=Wo(n),a=Wo(t),c=B,l=B;f||(c=ou.call(n),c==z?c=Z:c!=Z&&(f=je(n))),a||(l=ou.call(t),l==z?l=Z:l!=Z&&je(t));var s=c==Z&&!Gn(n),a=l==Z&&!Gn(t),l=c==l;if(!l||f||s){if(!e&&(c=s&&eu.call(n,"__wrapped__"),a=a&&eu.call(t,"__wrapped__"),
c||a)){n=i(c?n.value():n,a?t.value():t,r,e,u,o);break n}if(l){for(u||(u=[]),o||(o=[]),c=u.length;c--;)if(u[c]==n){n=o[c]==t;break n}u.push(n),o.push(t),n=(f?mr:xr)(n,t,i,r,e,u,o),u.pop(),o.pop()}else n=false}else n=wr(n,t,c)}return n}function xt(n,t,r){var e=t.length,u=e,o=!r;if(null==n)return!u;for(n=Dr(n);e--;){var i=t[e];if(o&&i[2]?i[1]!==n[i[0]]:!(i[0]in n))return false}for(;++e<u;){var i=t[e],f=i[0],a=n[f],c=i[1];if(o&&i[2]){if(a===w&&!(f in n))return false}else if(i=r?r(a,c,f):w,i===w?!wt(c,a,r,true):!i)return false;
}return true}function bt(n,t){var r=-1,e=Sr(n)?De(n.length):[];return zu(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function At(n){var t=kr(n);if(1==t.length&&t[0][2]){var r=t[0][0],e=t[0][1];return function(n){return null==n?false:(n=Dr(n),n[r]===e&&(e!==w||r in n))}}return function(n){return xt(n,t)}}function jt(n,t){var r=Wo(n),e=Wr(n)&&t===t&&!de(t),u=n+"";return n=Mr(n),function(o){if(null==o)return false;var i=u;if(o=Dr(o),!(!r&&e||i in o)){if(o=1==n.length?o:mt(o,St(n,0,-1)),null==o)return false;i=Gr(n),o=Dr(o);
}return o[i]===t?t!==w||i in o:wt(t,o[i],w,true)}}function kt(n,t,r,e,u){if(!de(n))return n;var o=Sr(t)&&(Wo(t)||je(t)),i=o?w:Ko(t);return Kn(i||t,function(f,a){if(i&&(a=f,f=t[a]),h(f)){e||(e=[]),u||(u=[]);n:{for(var c=a,l=e,s=u,p=l.length,_=t[c];p--;)if(l[p]==_){n[c]=s[p];break n}var p=n[c],v=r?r(p,_,c,n,t):w,g=v===w;g&&(v=_,Sr(_)&&(Wo(_)||je(_))?v=Wo(p)?p:Sr(p)?qn(p):[]:xe(_)||_e(_)?v=_e(p)?Ie(p):xe(p)?p:{}:g=false),l.push(_),s.push(v),g?n[c]=kt(v,_,r,l,s):(v===v?v!==p:p===p)&&(n[c]=v)}}else c=n[a],
l=r?r(c,f,a,n,t):w,(s=l===w)&&(l=f),l===w&&(!o||a in n)||!s&&(l===l?l===c:c!==c)||(n[a]=l)}),n}function Ot(n){return function(t){return null==t?w:Dr(t)[n]}}function It(n){var t=n+"";return n=Mr(n),function(r){return mt(r,n,t)}}function Rt(n,t){for(var r=n?t.length:0;r--;){var e=t[r];if(e!=u&&Ur(e)){var u=e;vu.call(n,e,1)}}return n}function Et(n,t){return n+wu(Ru()*(t-n+1))}function Ct(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function St(n,t,r){var e=-1,u=n.length;for(t=null==t?0:+t||0,
0>t&&(t=-t>u?0:u+t),r=r===w||r>u?u:+r||0,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=De(u);++e<u;)r[e]=n[e+t];return r}function Ut(n,t){var r;return zu(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function $t(n,t){var r=n.length;for(n.sort(t);r--;)n[r]=n[r].c;return n}function Wt(t,r,e){var u=br(),o=-1;return r=Xn(r,function(n){return u(n)}),t=bt(t,function(n){return{a:Xn(r,function(t){return t(n)}),b:++o,c:n}}),$t(t,function(t,r){var u;n:{for(var o=-1,i=t.a,f=r.a,a=i.length,c=e.length;++o<a;)if(u=n(i[o],f[o])){
if(o>=c)break n;o=e[o],u*="asc"===o||true===o?1:-1;break n}u=t.b-r.b}return u})}function Ft(n,t){var r=0;return zu(n,function(n,e,u){r+=+t(n,e,u)||0}),r}function Lt(n,t){var e=-1,u=jr(),o=n.length,i=u===r,f=i&&o>=F,a=f&&mu&&hu?new Dn(void 0):null,c=[];a?(u=Mn,i=false):(f=false,a=t?[]:c);n:for(;++e<o;){var l=n[e],s=t?t(l,e,n):l;if(i&&l===l){for(var p=a.length;p--;)if(a[p]===s)continue n;t&&a.push(s),c.push(l)}else 0>u(a,s,0)&&((t||f)&&a.push(s),c.push(l))}return c}function Nt(n,t){for(var r=-1,e=t.length,u=De(e);++r<e;)u[r]=n[t[r]];
return u}function Tt(n,t,r,e){for(var u=n.length,o=e?u:-1;(e?o--:++o<u)&&t(n[o],o,n););return r?St(n,e?0:o,e?o+1:u):St(n,e?o+1:0,e?u:o)}function Pt(n,t){var r=n;r instanceof zn&&(r=r.value());for(var e=-1,u=t.length;++e<u;)var o=t[e],r=o.func.apply(o.thisArg,Hn([r],o.args));return r}function zt(n,t,r){var e=0,u=n?n.length:e;if(typeof t=="number"&&t===t&&u<=Uu){for(;e<u;){var o=e+u>>>1,i=n[o];(r?i<=t:i<t)&&null!==i?e=o+1:u=o}return u}return Bt(n,t,Ne,r)}function Bt(n,t,r,e){t=r(t);for(var u=0,o=n?n.length:0,i=t!==t,f=null===t,a=t===w;u<o;){
var c=wu((u+o)/2),l=r(n[c]),s=l!==w,p=l===l;(i?p||e:f?p&&s&&(e||null!=l):a?p&&(e||s):null==l?0:e?l<=t:l<t)?u=c+1:o=c}return ku(o,Su)}function Dt(n,t,r){if(typeof n!="function")return Ne;if(t===w)return n;switch(r){case 1:return function(r){return n.call(t,r)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,o){return n.call(t,r,e,u,o)};case 5:return function(r,e,u,o,i){return n.call(t,r,e,u,o,i)}}return function(){return n.apply(t,arguments)}}function Mt(n){var t=new au(n.byteLength);
return new gu(t).set(new gu(n)),t}function qt(n,t,r){for(var e=r.length,u=-1,o=ju(n.length-e,0),i=-1,f=t.length,a=De(f+o);++i<f;)a[i]=t[i];for(;++u<e;)a[r[u]]=n[u];for(;o--;)a[i++]=n[u++];return a}function Kt(n,t,r){for(var e=-1,u=r.length,o=-1,i=ju(n.length-u,0),f=-1,a=t.length,c=De(i+a);++o<i;)c[o]=n[o];for(i=o;++f<a;)c[i+f]=t[f];for(;++e<u;)c[i+r[e]]=n[o++];return c}function Vt(n,t){return function(r,e,u){var o=t?t():{};if(e=br(e,u,3),Wo(r)){u=-1;for(var i=r.length;++u<i;){var f=r[u];n(o,f,e(f,u,r),r);
}}else zu(r,function(t,r,u){n(o,t,e(t,r,u),u)});return o}}function Zt(n){return pe(function(t,r){var e=-1,u=null==t?0:r.length,o=2<u?r[u-2]:w,i=2<u?r[2]:w,f=1<u?r[u-1]:w;for(typeof o=="function"?(o=Dt(o,f,5),u-=2):(o=typeof f=="function"?f:w,u-=o?1:0),i&&$r(r[0],r[1],i)&&(o=3>u?w:o,u=1);++e<u;)(i=r[e])&&n(t,i,o);return t})}function Yt(n,t){return function(r,e){var u=r?Vu(r):0;if(!Lr(u))return n(r,e);for(var o=t?u:-1,i=Dr(r);(t?o--:++o<u)&&false!==e(i[o],o,i););return r}}function Gt(n){return function(t,r,e){
var u=Dr(t);e=e(t);for(var o=e.length,i=n?o:-1;n?i--:++i<o;){var f=e[i];if(false===r(u[f],f,u))break}return t}}function Jt(n,t){function r(){return(this&&this!==Yn&&this instanceof r?e:n).apply(t,arguments)}var e=Ht(n);return r}function Xt(n){return function(t){var r=-1;t=Fe(Ue(t));for(var e=t.length,u="";++r<e;)u=n(u,t[r],r);return u}}function Ht(n){return function(){var t=arguments;switch(t.length){case 0:return new n;case 1:return new n(t[0]);case 2:return new n(t[0],t[1]);case 3:return new n(t[0],t[1],t[2]);
case 4:return new n(t[0],t[1],t[2],t[3]);case 5:return new n(t[0],t[1],t[2],t[3],t[4]);case 6:return new n(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new n(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var r=Pu(n.prototype),t=n.apply(r,t);return de(t)?t:r}}function Qt(n){function t(r,e,u){return u&&$r(r,e,u)&&(e=w),r=dr(r,n,w,w,w,w,w,e),r.placeholder=t.placeholder,r}return t}function nr(n,t){return pe(function(r){var e=r[0];return null==e?e:(r.push(t),n.apply(w,r))})}function tr(n,t){return function(r,e,u){
if(u&&$r(r,e,u)&&(e=w),e=br(e,u,3),1==e.length){u=r=Wo(r)?r:Br(r);for(var o=e,i=-1,f=u.length,a=t,c=a;++i<f;){var l=u[i],s=+o(l);n(s,a)&&(a=s,c=l)}if(u=c,!r.length||u!==t)return u}return st(r,e,n,t)}}function rr(n,r){return function(e,u,o){return u=br(u,o,3),Wo(e)?(u=t(e,u,r),-1<u?e[u]:w):ht(e,u,n)}}function er(n){return function(r,e,u){return r&&r.length?(e=br(e,u,3),t(r,e,n)):-1}}function ur(n){return function(t,r,e){return r=br(r,e,3),ht(t,r,n,true)}}function or(n){return function(){for(var t,r=arguments.length,e=n?r:-1,u=0,o=De(r);n?e--:++e<r;){
var i=o[u++]=arguments[e];if(typeof i!="function")throw new Xe(T);!t&&Pn.prototype.thru&&"wrapper"==Ar(i)&&(t=new Pn([],true))}for(e=t?-1:r;++e<r;){var i=o[e],u=Ar(i),f="wrapper"==u?Ku(i):w;t=f&&Fr(f[0])&&f[1]==(E|k|I|C)&&!f[4].length&&1==f[9]?t[Ar(f[0])].apply(t,f[3]):1==i.length&&Fr(i)?t[u]():t.thru(i)}return function(){var n=arguments,e=n[0];if(t&&1==n.length&&Wo(e)&&e.length>=F)return t.plant(e).value();for(var u=0,n=r?o[u].apply(this,n):e;++u<r;)n=o[u].call(this,n);return n}}}function ir(n,t){
return function(r,e,u){return typeof e=="function"&&u===w&&Wo(r)?n(r,e):t(r,Dt(e,u,3))}}function fr(n){return function(t,r,e){return(typeof r!="function"||e!==w)&&(r=Dt(r,e,3)),n(t,r,Ee)}}function ar(n){return function(t,r,e){return(typeof r!="function"||e!==w)&&(r=Dt(r,e,3)),n(t,r)}}function cr(n){return function(t,r,e){var u={};return r=br(r,e,3),gt(t,function(t,e,o){o=r(t,e,o),e=n?o:e,t=n?t:o,u[e]=t}),u}}function lr(n){return function(t,r,e){return t=u(t),(n?t:"")+_r(t,r,e)+(n?"":t)}}function sr(n){
var t=pe(function(r,e){var u=v(e,t.placeholder);return dr(r,n,w,e,u)});return t}function pr(n,t){return function(r,e,u,o){var i=3>arguments.length;return typeof e=="function"&&o===w&&Wo(r)?n(r,e,u,i):Ct(r,br(e,o,4),u,i,t)}}function hr(n,t,r,e,u,o,i,f,a,c){function l(){for(var m=arguments.length,x=m,j=De(m);x--;)j[x]=arguments[x];if(e&&(j=qt(j,e,u)),o&&(j=Kt(j,o,i)),_||y){var x=l.placeholder,k=v(j,x),m=m-k.length;if(m<c){var O=f?qn(f):w,m=ju(c-m,0),E=_?k:w,k=_?w:k,C=_?j:w,j=_?w:j;return t|=_?I:R,t&=~(_?R:I),
g||(t&=~(b|A)),j=[n,t,r,C,E,j,k,O,a,m],O=hr.apply(w,j),Fr(n)&&Zu(O,j),O.placeholder=x,O}}if(x=p?r:this,O=h?x[n]:n,f)for(m=j.length,E=ku(f.length,m),k=qn(j);E--;)C=f[E],j[E]=Ur(C,m)?k[C]:w;return s&&a<j.length&&(j.length=a),this&&this!==Yn&&this instanceof l&&(O=d||Ht(n)),O.apply(x,j)}var s=t&E,p=t&b,h=t&A,_=t&k,g=t&j,y=t&O,d=h?w:Ht(n);return l}function _r(n,t,r){return n=n.length,t=+t,n<t&&bu(t)?(t-=n,r=null==r?" ":r+"",$e(r,du(t/r.length)).slice(0,t)):""}function vr(n,t,r,e){function u(){for(var t=-1,f=arguments.length,a=-1,c=e.length,l=De(c+f);++a<c;)l[a]=e[a];
for(;f--;)l[a++]=arguments[++t];return(this&&this!==Yn&&this instanceof u?i:n).apply(o?r:this,l)}var o=t&b,i=Ht(n);return u}function gr(n){var t=Ve[n];return function(n,r){return(r=r===w?0:+r||0)?(r=su(10,r),t(n*r)/r):t(n)}}function yr(n){return function(t,r,e,u){var o=br(e);return null==e&&o===it?zt(t,r,n):Bt(t,r,o(e,u,1),n)}}function dr(n,t,r,e,u,o,i,f){var a=t&A;if(!a&&typeof n!="function")throw new Xe(T);var c=e?e.length:0;if(c||(t&=~(I|R),e=u=w),c-=u?u.length:0,t&R){var l=e,s=u;e=u=w}var p=a?w:Ku(n);
return r=[n,t,r,e,u,l,s,o,i,f],p&&(e=r[1],t=p[1],f=e|t,u=t==E&&e==k||t==E&&e==C&&r[7].length<=p[8]||t==(E|C)&&e==k,(f<E||u)&&(t&b&&(r[2]=p[2],f|=e&b?0:j),(e=p[3])&&(u=r[3],r[3]=u?qt(u,e,p[4]):qn(e),r[4]=u?v(r[3],P):qn(p[4])),(e=p[5])&&(u=r[5],r[5]=u?Kt(u,e,p[6]):qn(e),r[6]=u?v(r[5],P):qn(p[6])),(e=p[7])&&(r[7]=qn(e)),t&E&&(r[8]=null==r[8]?p[8]:ku(r[8],p[8])),null==r[9]&&(r[9]=p[9]),r[0]=p[0],r[1]=f),t=r[1],f=r[9]),r[9]=null==f?a?0:n.length:ju(f-c,0)||0,n=t==b?Jt(r[0],r[2]):t!=I&&t!=(b|I)||r[4].length?hr.apply(w,r):vr.apply(w,r),
(p?qu:Zu)(n,r)}function mr(n,t,r,e,u,o,i){var f=-1,a=n.length,c=t.length;if(a!=c&&(!u||c<=a))return false;for(;++f<a;){var l=n[f],c=t[f],s=e?e(u?c:l,u?l:c,f):w;if(s!==w){if(s)continue;return false}if(u){if(!nt(t,function(n){return l===n||r(l,n,e,u,o,i)}))return false}else if(l!==c&&!r(l,c,e,u,o,i))return false}return true}function wr(n,t,r){switch(r){case D:case M:return+n==+t;case q:return n.name==t.name&&n.message==t.message;case V:return n!=+n?t!=+t:n==+t;case Y:case G:return n==t+""}return false}function xr(n,t,r,e,u,o,i){
var f=Ko(n),a=f.length,c=Ko(t).length;if(a!=c&&!u)return false;for(c=a;c--;){var l=f[c];if(!(u?l in t:eu.call(t,l)))return false}for(var s=u;++c<a;){var l=f[c],p=n[l],h=t[l],_=e?e(u?h:p,u?p:h,l):w;if(_===w?!r(p,h,e,u,o,i):!_)return false;s||(s="constructor"==l)}return s||(r=n.constructor,e=t.constructor,!(r!=e&&"constructor"in n&&"constructor"in t)||typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)?true:false}function br(n,t,r){var e=Nn.callback||Le,e=e===Le?it:e;return r?e(n,t,r):e}function Ar(n){
for(var t=n.name+"",r=Fu[t],e=r?r.length:0;e--;){var u=r[e],o=u.func;if(null==o||o==n)return u.name}return t}function jr(n,t,e){var u=Nn.indexOf||Yr,u=u===Yr?r:u;return n?u(n,t,e):u}function kr(n){n=Ce(n);for(var t=n.length;t--;){var r,e=n[t];r=n[t][1],r=r===r&&!de(r),e[2]=r}return n}function Or(n,t){var r=null==n?w:n[t];return me(r)?r:w}function Ir(n){var t=n.length,r=new n.constructor(t);return t&&"string"==typeof n[0]&&eu.call(n,"index")&&(r.index=n.index,r.input=n.input),r}function Rr(n){return n=n.constructor,
typeof n=="function"&&n instanceof n||(n=Ye),new n}function Er(n,t,r){var e=n.constructor;switch(t){case J:return Mt(n);case D:case M:return new e(+n);case X:case H:case Q:case nn:case tn:case rn:case en:case un:case on:return e instanceof e&&(e=Lu[t]),t=n.buffer,new e(r?Mt(t):t,n.byteOffset,n.length);case V:case G:return new e(n);case Y:var u=new e(n.source,kn.exec(n));u.lastIndex=n.lastIndex}return u}function Cr(n,t,r){return null==n||Wr(t,n)||(t=Mr(t),n=1==t.length?n:mt(n,St(t,0,-1)),t=Gr(t)),
t=null==n?n:n[t],null==t?w:t.apply(n,r)}function Sr(n){return null!=n&&Lr(Vu(n))}function Ur(n,t){return n=typeof n=="number"||Rn.test(n)?+n:-1,t=null==t?$u:t,-1<n&&0==n%1&&n<t}function $r(n,t,r){if(!de(r))return false;var e=typeof t;return("number"==e?Sr(r)&&Ur(t,r.length):"string"==e&&t in r)?(t=r[t],n===n?n===t:t!==t):false}function Wr(n,t){var r=typeof n;return"string"==r&&dn.test(n)||"number"==r?true:Wo(n)?false:!yn.test(n)||null!=t&&n in Dr(t)}function Fr(n){var t=Ar(n),r=Nn[t];return typeof r=="function"&&t in zn.prototype?n===r?true:(t=Ku(r),
!!t&&n===t[0]):false}function Lr(n){return typeof n=="number"&&-1<n&&0==n%1&&n<=$u}function Nr(n,t){return n===w?t:Fo(n,t,Nr)}function Tr(n,t){n=Dr(n);for(var r=-1,e=t.length,u={};++r<e;){var o=t[r];o in n&&(u[o]=n[o])}return u}function Pr(n,t){var r={};return vt(n,function(n,e,u){t(n,e,u)&&(r[e]=n)}),r}function zr(n){for(var t=Ee(n),r=t.length,e=r&&n.length,u=!!e&&Lr(e)&&(Wo(n)||_e(n)||Ae(n)),o=-1,i=[];++o<r;){var f=t[o];(u&&Ur(f,e)||eu.call(n,f))&&i.push(f)}return i}function Br(n){return null==n?[]:Sr(n)?Nn.support.unindexedChars&&Ae(n)?n.split(""):de(n)?n:Ye(n):Se(n);
}function Dr(n){if(Nn.support.unindexedChars&&Ae(n)){for(var t=-1,r=n.length,e=Ye(n);++t<r;)e[t]=n.charAt(t);return e}return de(n)?n:Ye(n)}function Mr(n){if(Wo(n))return n;var t=[];return u(n).replace(mn,function(n,r,e,u){t.push(e?u.replace(An,"$1"):r||n)}),t}function qr(n){return n instanceof zn?n.clone():new Pn(n.__wrapped__,n.__chain__,qn(n.__actions__))}function Kr(n,t,r){return n&&n.length?((r?$r(n,t,r):null==t)&&(t=1),St(n,0>t?0:t)):[]}function Vr(n,t,r){var e=n?n.length:0;return e?((r?$r(n,t,r):null==t)&&(t=1),
t=e-(+t||0),St(n,0,0>t?0:t)):[]}function Zr(n){return n?n[0]:w}function Yr(n,t,e){var u=n?n.length:0;if(!u)return-1;if(typeof e=="number")e=0>e?ju(u+e,0):e;else if(e)return e=zt(n,t),e<u&&(t===t?t===n[e]:n[e]!==n[e])?e:-1;return r(n,t,e||0)}function Gr(n){var t=n?n.length:0;return t?n[t-1]:w}function Jr(n){return Kr(n,1)}function Xr(n,t,e,u){if(!n||!n.length)return[];null!=t&&typeof t!="boolean"&&(u=e,e=$r(n,t,u)?w:t,t=false);var o=br();if((null!=e||o!==it)&&(e=o(e,u,3)),t&&jr()===r){t=e;var i;e=-1,
u=n.length;for(var o=-1,f=[];++e<u;){var a=n[e],c=t?t(a,e,n):a;e&&i===c||(i=c,f[++o]=a)}n=f}else n=Lt(n,e);return n}function Hr(n){if(!n||!n.length)return[];var t=-1,r=0;n=Zn(n,function(n){return Sr(n)?(r=ju(n.length,r),true):void 0});for(var e=De(r);++t<r;)e[t]=Xn(n,Ot(t));return e}function Qr(n,t,r){return n&&n.length?(n=Hr(n),null==t?n:(t=Dt(t,r,4),Xn(n,function(n){return Qn(n,t,w,true)}))):[]}function ne(n,t){var r=-1,e=n?n.length:0,u={};for(!e||t||Wo(n[0])||(t=[]);++r<e;){var o=n[r];t?u[o]=t[r]:o&&(u[o[0]]=o[1]);
}return u}function te(n){return n=Nn(n),n.__chain__=true,n}function re(n,t,r){return t.call(r,n)}function ee(n,t,r){var e=Wo(n)?Vn:lt;return r&&$r(n,t,r)&&(t=w),(typeof t!="function"||r!==w)&&(t=br(t,r,3)),e(n,t)}function ue(n,t,r){var e=Wo(n)?Zn:pt;return t=br(t,r,3),e(n,t)}function oe(n,t,r,e){var u=n?Vu(n):0;return Lr(u)||(n=Se(n),u=n.length),r=typeof r!="number"||e&&$r(t,r,e)?0:0>r?ju(u+r,0):r||0,typeof n=="string"||!Wo(n)&&Ae(n)?r<=u&&-1<n.indexOf(t,r):!!u&&-1<jr(n,t,r)}function ie(n,t,r){var e=Wo(n)?Xn:bt;
return t=br(t,r,3),e(n,t)}function fe(n,t,r){if(r?$r(n,t,r):null==t){n=Br(n);var e=n.length;return 0<e?n[Et(0,e-1)]:w}r=-1,n=Oe(n);var e=n.length,u=e-1;for(t=ku(0>t?0:+t||0,e);++r<t;){var e=Et(r,u),o=n[e];n[e]=n[r],n[r]=o}return n.length=t,n}function ae(n,t,r){var e=Wo(n)?nt:Ut;return r&&$r(n,t,r)&&(t=w),(typeof t!="function"||r!==w)&&(t=br(t,r,3)),e(n,t)}function ce(n,t){var r;if(typeof t!="function"){if(typeof n!="function")throw new Xe(T);var e=n;n=t,t=e}return function(){return 0<--n&&(r=t.apply(this,arguments)),
1>=n&&(t=w),r}}function le(n,t,r){function e(t,r){r&&cu(r),a=p=h=w,t&&(_=wo(),c=n.apply(s,f),p||a||(f=s=w))}function u(){var n=t-(wo()-l);0>=n||n>t?e(h,a):p=_u(u,n)}function o(){e(g,p)}function i(){if(f=arguments,l=wo(),s=this,h=g&&(p||!y),false===v)var r=y&&!p;else{a||y||(_=l);var e=v-(l-_),i=0>=e||e>v;i?(a&&(a=cu(a)),_=l,c=n.apply(s,f)):a||(a=_u(o,e))}return i&&p?p=cu(p):p||t===v||(p=_u(u,t)),r&&(i=true,c=n.apply(s,f)),!i||p||a||(f=s=w),c}var f,a,c,l,s,p,h,_=0,v=false,g=true;if(typeof n!="function")throw new Xe(T);
if(t=0>t?0:+t||0,true===r)var y=true,g=false;else de(r)&&(y=!!r.leading,v="maxWait"in r&&ju(+r.maxWait||0,t),g="trailing"in r?!!r.trailing:g);return i.cancel=function(){p&&cu(p),a&&cu(a),_=0,a=p=h=w},i}function se(n,t){if(typeof n!="function"||t&&typeof t!="function")throw new Xe(T);var r=function(){var e=arguments,u=t?t.apply(this,e):e[0],o=r.cache;return o.has(u)?o.get(u):(e=n.apply(this,e),r.cache=o.set(u,e),e)};return r.cache=new se.Cache,r}function pe(n,t){if(typeof n!="function")throw new Xe(T);return t=ju(t===w?n.length-1:+t||0,0),
function(){for(var r=arguments,e=-1,u=ju(r.length-t,0),o=De(u);++e<u;)o[e]=r[t+e];switch(t){case 0:return n.call(this,o);case 1:return n.call(this,r[0],o);case 2:return n.call(this,r[0],r[1],o)}for(u=De(t+1),e=-1;++e<t;)u[e]=r[e];return u[t]=o,n.apply(this,u)}}function he(n,t){return n>t}function _e(n){return h(n)&&Sr(n)&&eu.call(n,"callee")&&!pu.call(n,"callee")}function ve(n,t,r,e){return e=(r=typeof r=="function"?Dt(r,e,3):w)?r(n,t):w,e===w?wt(n,t,r):!!e}function ge(n){return h(n)&&typeof n.message=="string"&&ou.call(n)==q;
}function ye(n){return de(n)&&ou.call(n)==K}function de(n){var t=typeof n;return!!n&&("object"==t||"function"==t)}function me(n){return null==n?false:ye(n)?fu.test(ru.call(n)):h(n)&&(Gn(n)?fu:In).test(n)}function we(n){return typeof n=="number"||h(n)&&ou.call(n)==V}function xe(n){var t;if(!h(n)||ou.call(n)!=Z||Gn(n)||_e(n)||!(eu.call(n,"constructor")||(t=n.constructor,typeof t!="function"||t instanceof t)))return false;var r;return Nn.support.ownLast?(vt(n,function(n,t,e){return r=eu.call(e,t),false}),false!==r):(vt(n,function(n,t){
r=t}),r===w||eu.call(n,r))}function be(n){return de(n)&&ou.call(n)==Y}function Ae(n){return typeof n=="string"||h(n)&&ou.call(n)==G}function je(n){return h(n)&&Lr(n.length)&&!!Fn[ou.call(n)]}function ke(n,t){return n<t}function Oe(n){var t=n?Vu(n):0;return Lr(t)?t?Nn.support.unindexedChars&&Ae(n)?n.split(""):qn(n):[]:Se(n)}function Ie(n){return ot(n,Ee(n))}function Re(n){return dt(n,Ee(n))}function Ee(n){if(null==n)return[];de(n)||(n=Ye(n));for(var t=n.length,r=Nn.support,t=t&&Lr(t)&&(Wo(n)||_e(n)||Ae(n))&&t||0,e=n.constructor,u=-1,e=ye(e)&&e.prototype||nu,o=e===n,i=De(t),f=0<t,a=r.enumErrorProps&&(n===Qe||n instanceof qe),c=r.enumPrototypes&&ye(n);++u<t;)i[u]=u+"";
for(var l in n)c&&"prototype"==l||a&&("message"==l||"name"==l)||f&&Ur(l,t)||"constructor"==l&&(o||!eu.call(n,l))||i.push(l);if(r.nonEnumShadows&&n!==nu)for(t=n===tu?G:n===Qe?q:ou.call(n),r=Nu[t]||Nu[Z],t==Z&&(e=nu),t=Wn.length;t--;)l=Wn[t],u=r[l],o&&u||(u?!eu.call(n,l):n[l]===e[l])||i.push(l);return i}function Ce(n){n=Dr(n);for(var t=-1,r=Ko(n),e=r.length,u=De(e);++t<e;){var o=r[t];u[t]=[o,n[o]]}return u}function Se(n){return Nt(n,Ko(n))}function Ue(n){return(n=u(n))&&n.replace(En,a).replace(bn,"");
}function $e(n,t){var r="";if(n=u(n),t=+t,1>t||!n||!bu(t))return r;do t%2&&(r+=n),t=wu(t/2),n+=n;while(t);return r}function We(n,t,r){var e=n;return(n=u(n))?(r?$r(e,t,r):null==t)?n.slice(g(n),y(n)+1):(t+="",n.slice(o(n,t),i(n,t)+1)):n}function Fe(n,t,r){return r&&$r(n,t,r)&&(t=w),n=u(n),n.match(t||Un)||[]}function Le(n,t,r){return r&&$r(n,t,r)&&(t=w),h(n)?Te(n):it(n,t)}function Ne(n){return n}function Te(n){return At(ft(n,true))}function Pe(n,t,r){if(null==r){var e=de(t),u=e?Ko(t):w;((u=u&&u.length?dt(t,u):w)?u.length:e)||(u=false,
r=t,t=n,n=this)}u||(u=dt(t,Ko(t)));var o=true,e=-1,i=ye(n),f=u.length;false===r?o=false:de(r)&&"chain"in r&&(o=r.chain);for(;++e<f;){r=u[e];var a=t[r];n[r]=a,i&&(n.prototype[r]=function(t){return function(){var r=this.__chain__;if(o||r){var e=n(this.__wrapped__);return(e.__actions__=qn(this.__actions__)).push({func:t,args:arguments,thisArg:n}),e.__chain__=r,e}return t.apply(n,Hn([this.value()],arguments))}}(a))}return n}function ze(){}function Be(n){return Wr(n)?Ot(n):It(n)}_=_?Jn.defaults(Yn.Object(),_,Jn.pick(Yn,$n)):Yn;
var De=_.Array,Me=_.Date,qe=_.Error,Ke=_.Function,Ve=_.Math,Ze=_.Number,Ye=_.Object,Ge=_.RegExp,Je=_.String,Xe=_.TypeError,He=De.prototype,Qe=qe.prototype,nu=Ye.prototype,tu=Je.prototype,ru=Ke.prototype.toString,eu=nu.hasOwnProperty,uu=0,ou=nu.toString,iu=Yn._,fu=Ge("^"+ru.call(eu).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),au=_.ArrayBuffer,cu=_.clearTimeout,lu=_.parseFloat,su=Ve.pow,pu=nu.propertyIsEnumerable,hu=Or(_,"Set"),_u=_.setTimeout,vu=He.splice,gu=_.Uint8Array,yu=Or(_,"WeakMap"),du=Ve.ceil,mu=Or(Ye,"create"),wu=Ve.floor,xu=Or(De,"isArray"),bu=_.isFinite,Au=Or(Ye,"keys"),ju=Ve.max,ku=Ve.min,Ou=Or(Me,"now"),Iu=_.parseInt,Ru=Ve.random,Eu=Ze.NEGATIVE_INFINITY,Cu=Ze.POSITIVE_INFINITY,Su=4294967294,Uu=2147483647,$u=9007199254740991,Wu=yu&&new yu,Fu={},Lu={};
Lu[X]=_.Float32Array,Lu[H]=_.Float64Array,Lu[Q]=_.Int8Array,Lu[nn]=_.Int16Array,Lu[tn]=_.Int32Array,Lu[rn]=gu,Lu[en]=_.Uint8ClampedArray,Lu[un]=_.Uint16Array,Lu[on]=_.Uint32Array;var Nu={};Nu[B]=Nu[M]=Nu[V]={constructor:true,toLocaleString:true,toString:true,valueOf:true},Nu[D]=Nu[G]={constructor:true,toString:true,valueOf:true},Nu[q]=Nu[K]=Nu[Y]={constructor:true,toString:true},Nu[Z]={constructor:true},Kn(Wn,function(n){for(var t in Nu)if(eu.call(Nu,t)){var r=Nu[t];r[n]=eu.call(r,n)}});var Tu=Nn.support={};!function(n){
var t=function(){this.x=n},r={0:n,length:n},e=[];t.prototype={valueOf:n,y:n};for(var u in new t)e.push(u);Tu.enumErrorProps=pu.call(Qe,"message")||pu.call(Qe,"name"),Tu.enumPrototypes=pu.call(t,"prototype"),Tu.nonEnumShadows=!/valueOf/.test(e),Tu.ownLast="x"!=e[0],Tu.spliceObjects=(vu.call(r,0,1),!r[0]),Tu.unindexedChars="xx"!="x"[0]+Ye("x")[0]}(1,0),Nn.templateSettings={escape:_n,evaluate:vn,interpolate:gn,variable:"",imports:{_:Nn}};var Pu=function(){function n(){}return function(t){if(de(t)){n.prototype=t;
var r=new n;n.prototype=w}return r||{}}}(),zu=Yt(gt),Bu=Yt(yt,true),Du=Gt(),Mu=Gt(true),qu=Wu?function(n,t){return Wu.set(n,t),n}:Ne,Ku=Wu?function(n){return Wu.get(n)}:ze,Vu=Ot("length"),Zu=function(){var n=0,t=0;return function(r,e){var u=wo(),o=W-(u-t);if(t=u,0<o){if(++n>=$)return r}else n=0;return qu(r,e)}}(),Yu=pe(function(n,t){return h(n)&&Sr(n)?ct(n,_t(t,false,true)):[]}),Gu=er(),Ju=er(true),Xu=pe(function(n){for(var t=n.length,e=t,u=De(l),o=jr(),i=o===r,f=[];e--;){var a=n[e]=Sr(a=n[e])?a:[];u[e]=i&&120<=a.length&&mu&&hu?new Dn(e&&a):null;
}var i=n[0],c=-1,l=i?i.length:0,s=u[0];n:for(;++c<l;)if(a=i[c],0>(s?Mn(s,a):o(f,a,0))){for(e=t;--e;){var p=u[e];if(0>(p?Mn(p,a):o(n[e],a,0)))continue n}s&&s.push(a),f.push(a)}return f}),Hu=pe(function(t,r){r=_t(r);var e=ut(t,r);return Rt(t,r.sort(n)),e}),Qu=yr(),no=yr(true),to=pe(function(n){return Lt(_t(n,false,true))}),ro=pe(function(n,t){return Sr(n)?ct(n,t):[]}),eo=pe(Hr),uo=pe(function(n){var t=n.length,r=2<t?n[t-2]:w,e=1<t?n[t-1]:w;return 2<t&&typeof r=="function"?t-=2:(r=1<t&&typeof e=="function"?(--t,
e):w,e=w),n.length=t,Qr(n,r,e)}),oo=pe(function(n){return n=_t(n),this.thru(function(t){t=Wo(t)?t:[Dr(t)];for(var r=n,e=-1,u=t.length,o=-1,i=r.length,f=De(u+i);++e<u;)f[e]=t[e];for(;++o<i;)f[e++]=r[o];return f})}),io=pe(function(n,t){return Sr(n)&&(n=Br(n)),ut(n,_t(t))}),fo=Vt(function(n,t,r){eu.call(n,r)?++n[r]:n[r]=1}),ao=rr(zu),co=rr(Bu,true),lo=ir(Kn,zu),so=ir(function(n,t){for(var r=n.length;r--&&false!==t(n[r],r,n););return n},Bu),po=Vt(function(n,t,r){eu.call(n,r)?n[r].push(t):n[r]=[t]}),ho=Vt(function(n,t,r){
n[r]=t}),_o=pe(function(n,t,r){var e=-1,u=typeof t=="function",o=Wr(t),i=Sr(n)?De(n.length):[];return zu(n,function(n){var f=u?t:o&&null!=n?n[t]:w;i[++e]=f?f.apply(n,r):Cr(n,t,r)}),i}),vo=Vt(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]}),go=pr(Qn,zu),yo=pr(function(n,t,r,e){var u=n.length;for(e&&u&&(r=n[--u]);u--;)r=t(r,n[u],u,n);return r},Bu),mo=pe(function(n,t){if(null==n)return[];var r=t[2];return r&&$r(t[0],t[1],r)&&(t.length=1),Wt(n,_t(t),[])}),wo=Ou||function(){return(new Me).getTime();
},xo=pe(function(n,t,r){var e=b;if(r.length)var u=v(r,xo.placeholder),e=e|I;return dr(n,e,t,r,u)}),bo=pe(function(n,t){t=t.length?_t(t):Re(n);for(var r=-1,e=t.length;++r<e;){var u=t[r];n[u]=dr(n[u],b,n)}return n}),Ao=pe(function(n,t,r){var e=b|A;if(r.length)var u=v(r,Ao.placeholder),e=e|I;return dr(t,e,n,r,u)}),jo=Qt(k),ko=Qt(O),Oo=pe(function(n,t){return at(n,1,t)}),Io=pe(function(n,t,r){return at(n,t,r)}),Ro=or(),Eo=or(true),Co=pe(function(n,t){if(t=_t(t),typeof n!="function"||!Vn(t,e))throw new Xe(T);
var r=t.length;return pe(function(e){for(var u=ku(e.length,r);u--;)e[u]=t[u](e[u]);return n.apply(this,e)})}),So=sr(I),Uo=sr(R),$o=pe(function(n,t){return dr(n,C,w,w,w,_t(t))}),Wo=xu||function(n){return h(n)&&Lr(n.length)&&ou.call(n)==B},Fo=Zt(kt),Lo=Zt(function(n,t,r){return r?rt(n,t,r):et(n,t)}),No=nr(Lo,function(n,t){return n===w?t:n}),To=nr(Fo,Nr),Po=ur(gt),zo=ur(yt),Bo=fr(Du),Do=fr(Mu),Mo=ar(gt),qo=ar(yt),Ko=Au?function(n){var t=null==n?w:n.constructor;return typeof t=="function"&&t.prototype===n||(typeof n=="function"?Nn.support.enumPrototypes:Sr(n))?zr(n):de(n)?Au(n):[];
}:zr,Vo=cr(true),Zo=cr(),Yo=pe(function(n,t){if(null==n)return{};if("function"!=typeof t[0])return t=Xn(_t(t),Je),Tr(n,ct(Ee(n),t));var r=Dt(t[0],t[1],3);return Pr(n,function(n,t,e){return!r(n,t,e)})}),Go=pe(function(n,t){return null==n?{}:"function"==typeof t[0]?Pr(n,Dt(t[0],t[1],3)):Tr(n,_t(t))}),Jo=Xt(function(n,t,r){return t=t.toLowerCase(),n+(r?t.charAt(0).toUpperCase()+t.slice(1):t)}),Xo=Xt(function(n,t,r){return n+(r?"-":"")+t.toLowerCase()}),Ho=lr(),Qo=lr(true),ni=Xt(function(n,t,r){return n+(r?"_":"")+t.toLowerCase();
}),ti=Xt(function(n,t,r){return n+(r?" ":"")+(t.charAt(0).toUpperCase()+t.slice(1))}),ri=pe(function(n,t){try{return n.apply(w,t)}catch(r){return ge(r)?r:new qe(r)}}),ei=pe(function(n,t){return function(r){return Cr(r,n,t)}}),ui=pe(function(n,t){return function(r){return Cr(n,r,t)}}),oi=gr("ceil"),ii=gr("floor"),fi=tr(he,Eu),ai=tr(ke,Cu),ci=gr("round");return Nn.prototype=Tn.prototype,Pn.prototype=Pu(Tn.prototype),Pn.prototype.constructor=Pn,zn.prototype=Pu(Tn.prototype),zn.prototype.constructor=zn,
Bn.prototype["delete"]=function(n){return this.has(n)&&delete this.__data__[n]},Bn.prototype.get=function(n){return"__proto__"==n?w:this.__data__[n]},Bn.prototype.has=function(n){return"__proto__"!=n&&eu.call(this.__data__,n)},Bn.prototype.set=function(n,t){return"__proto__"!=n&&(this.__data__[n]=t),this},Dn.prototype.push=function(n){var t=this.data;typeof n=="string"||de(n)?t.set.add(n):t.hash[n]=true},se.Cache=Bn,Nn.after=function(n,t){if(typeof t!="function"){if(typeof n!="function")throw new Xe(T);
var r=n;n=t,t=r}return n=bu(n=+n)?n:0,function(){return 1>--n?t.apply(this,arguments):void 0}},Nn.ary=function(n,t,r){return r&&$r(n,t,r)&&(t=w),t=n&&null==t?n.length:ju(+t||0,0),dr(n,E,w,w,w,w,t)},Nn.assign=Lo,Nn.at=io,Nn.before=ce,Nn.bind=xo,Nn.bindAll=bo,Nn.bindKey=Ao,Nn.callback=Le,Nn.chain=te,Nn.chunk=function(n,t,r){t=(r?$r(n,t,r):null==t)?1:ju(wu(t)||1,1),r=0;for(var e=n?n.length:0,u=-1,o=De(du(e/t));r<e;)o[++u]=St(n,r,r+=t);return o},Nn.compact=function(n){for(var t=-1,r=n?n.length:0,e=-1,u=[];++t<r;){
var o=n[t];o&&(u[++e]=o)}return u},Nn.constant=function(n){return function(){return n}},Nn.countBy=fo,Nn.create=function(n,t,r){var e=Pu(n);return r&&$r(n,t,r)&&(t=w),t?et(e,t):e},Nn.curry=jo,Nn.curryRight=ko,Nn.debounce=le,Nn.defaults=No,Nn.defaultsDeep=To,Nn.defer=Oo,Nn.delay=Io,Nn.difference=Yu,Nn.drop=Kr,Nn.dropRight=Vr,Nn.dropRightWhile=function(n,t,r){return n&&n.length?Tt(n,br(t,r,3),true,true):[]},Nn.dropWhile=function(n,t,r){return n&&n.length?Tt(n,br(t,r,3),true):[]},Nn.fill=function(n,t,r,e){
var u=n?n.length:0;if(!u)return[];for(r&&typeof r!="number"&&$r(n,t,r)&&(r=0,e=u),u=n.length,r=null==r?0:+r||0,0>r&&(r=-r>u?0:u+r),e=e===w||e>u?u:+e||0,0>e&&(e+=u),u=r>e?0:e>>>0,r>>>=0;r<u;)n[r++]=t;return n},Nn.filter=ue,Nn.flatten=function(n,t,r){var e=n?n.length:0;return r&&$r(n,t,r)&&(t=false),e?_t(n,t):[]},Nn.flattenDeep=function(n){return n&&n.length?_t(n,true):[]},Nn.flow=Ro,Nn.flowRight=Eo,Nn.forEach=lo,Nn.forEachRight=so,Nn.forIn=Bo,Nn.forInRight=Do,Nn.forOwn=Mo,Nn.forOwnRight=qo,Nn.functions=Re,
Nn.groupBy=po,Nn.indexBy=ho,Nn.initial=function(n){return Vr(n,1)},Nn.intersection=Xu,Nn.invert=function(n,t,r){r&&$r(n,t,r)&&(t=w),r=-1;for(var e=Ko(n),u=e.length,o={};++r<u;){var i=e[r],f=n[i];t?eu.call(o,f)?o[f].push(i):o[f]=[i]:o[f]=i}return o},Nn.invoke=_o,Nn.keys=Ko,Nn.keysIn=Ee,Nn.map=ie,Nn.mapKeys=Vo,Nn.mapValues=Zo,Nn.matches=Te,Nn.matchesProperty=function(n,t){return jt(n,ft(t,true))},Nn.memoize=se,Nn.merge=Fo,Nn.method=ei,Nn.methodOf=ui,Nn.mixin=Pe,Nn.modArgs=Co,Nn.negate=function(n){if(typeof n!="function")throw new Xe(T);
return function(){return!n.apply(this,arguments)}},Nn.omit=Yo,Nn.once=function(n){return ce(2,n)},Nn.pairs=Ce,Nn.partial=So,Nn.partialRight=Uo,Nn.partition=vo,Nn.pick=Go,Nn.pluck=function(n,t){return ie(n,Be(t))},Nn.property=Be,Nn.propertyOf=function(n){return function(t){return mt(n,Mr(t),t+"")}},Nn.pull=function(){var n=arguments,t=n[0];if(!t||!t.length)return t;for(var r=0,e=jr(),u=n.length;++r<u;)for(var o=0,i=n[r];-1<(o=e(t,i,o));)vu.call(t,o,1);return t},Nn.pullAt=Hu,Nn.range=function(n,t,r){
r&&$r(n,t,r)&&(t=r=w),n=+n||0,r=null==r?1:+r||0,null==t?(t=n,n=0):t=+t||0;var e=-1;t=ju(du((t-n)/(r||1)),0);for(var u=De(t);++e<t;)u[e]=n,n+=r;return u},Nn.rearg=$o,Nn.reject=function(n,t,r){var e=Wo(n)?Zn:pt;return t=br(t,r,3),e(n,function(n,r,e){return!t(n,r,e)})},Nn.remove=function(n,t,r){var e=[];if(!n||!n.length)return e;var u=-1,o=[],i=n.length;for(t=br(t,r,3);++u<i;)r=n[u],t(r,u,n)&&(e.push(r),o.push(u));return Rt(n,o),e},Nn.rest=Jr,Nn.restParam=pe,Nn.set=function(n,t,r){if(null==n)return n;
var e=t+"";t=null!=n[e]||Wr(t,n)?[e]:Mr(t);for(var e=-1,u=t.length,o=u-1,i=n;null!=i&&++e<u;){var f=t[e];de(i)&&(e==o?i[f]=r:null==i[f]&&(i[f]=Ur(t[e+1])?[]:{})),i=i[f]}return n},Nn.shuffle=function(n){return fe(n,Cu)},Nn.slice=function(n,t,r){var e=n?n.length:0;return e?(r&&typeof r!="number"&&$r(n,t,r)&&(t=0,r=e),St(n,t,r)):[]},Nn.sortBy=function(n,t,r){if(null==n)return[];r&&$r(n,t,r)&&(t=w);var e=-1;return t=br(t,r,3),n=bt(n,function(n,r,u){return{a:t(n,r,u),b:++e,c:n}}),$t(n,f)},Nn.sortByAll=mo,
Nn.sortByOrder=function(n,t,r,e){return null==n?[]:(e&&$r(t,r,e)&&(r=w),Wo(t)||(t=null==t?[]:[t]),Wo(r)||(r=null==r?[]:[r]),Wt(n,t,r))},Nn.spread=function(n){if(typeof n!="function")throw new Xe(T);return function(t){return n.apply(this,t)}},Nn.take=function(n,t,r){return n&&n.length?((r?$r(n,t,r):null==t)&&(t=1),St(n,0,0>t?0:t)):[]},Nn.takeRight=function(n,t,r){var e=n?n.length:0;return e?((r?$r(n,t,r):null==t)&&(t=1),t=e-(+t||0),St(n,0>t?0:t)):[]},Nn.takeRightWhile=function(n,t,r){return n&&n.length?Tt(n,br(t,r,3),false,true):[];
},Nn.takeWhile=function(n,t,r){return n&&n.length?Tt(n,br(t,r,3)):[]},Nn.tap=function(n,t,r){return t.call(r,n),n},Nn.throttle=function(n,t,r){var e=true,u=true;if(typeof n!="function")throw new Xe(T);return false===r?e=false:de(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),le(n,t,{leading:e,maxWait:+t,trailing:u})},Nn.thru=re,Nn.times=function(n,t,r){if(n=wu(n),1>n||!bu(n))return[];var e=-1,u=De(ku(n,4294967295));for(t=Dt(t,r,1);++e<n;)4294967295>e?u[e]=t(e):t(e);return u},Nn.toArray=Oe,
Nn.toPlainObject=Ie,Nn.transform=function(n,t,r,e){var u=Wo(n)||je(n);return t=br(t,e,4),null==r&&(u||de(n)?(e=n.constructor,r=u?Wo(n)?new e:[]:Pu(ye(e)?e.prototype:w)):r={}),(u?Kn:gt)(n,function(n,e,u){return t(r,n,e,u)}),r},Nn.union=to,Nn.uniq=Xr,Nn.unzip=Hr,Nn.unzipWith=Qr,Nn.values=Se,Nn.valuesIn=function(n){return Nt(n,Ee(n))},Nn.where=function(n,t){return ue(n,At(t))},Nn.without=ro,Nn.wrap=function(n,t){return t=null==t?Ne:t,dr(t,I,w,[n],[])},Nn.xor=function(){for(var n=-1,t=arguments.length;++n<t;){
var r=arguments[n];if(Sr(r))var e=e?Hn(ct(e,r),ct(r,e)):r}return e?Lt(e):[]},Nn.zip=eo,Nn.zipObject=ne,Nn.zipWith=uo,Nn.backflow=Eo,Nn.collect=ie,Nn.compose=Eo,Nn.each=lo,Nn.eachRight=so,Nn.extend=Lo,Nn.iteratee=Le,Nn.methods=Re,Nn.object=ne,Nn.select=ue,Nn.tail=Jr,Nn.unique=Xr,Pe(Nn,Nn),Nn.add=function(n,t){return(+n||0)+(+t||0)},Nn.attempt=ri,Nn.camelCase=Jo,Nn.capitalize=function(n){return(n=u(n))&&n.charAt(0).toUpperCase()+n.slice(1)},Nn.ceil=oi,Nn.clone=function(n,t,r,e){return t&&typeof t!="boolean"&&$r(n,t,r)?t=false:typeof t=="function"&&(e=r,
r=t,t=false),typeof r=="function"?ft(n,t,Dt(r,e,3)):ft(n,t)},Nn.cloneDeep=function(n,t,r){return typeof t=="function"?ft(n,true,Dt(t,r,3)):ft(n,true)},Nn.deburr=Ue,Nn.endsWith=function(n,t,r){n=u(n),t+="";var e=n.length;return r=r===w?e:ku(0>r?0:+r||0,e),r-=t.length,0<=r&&n.indexOf(t,r)==r},Nn.escape=function(n){return(n=u(n))&&hn.test(n)?n.replace(sn,c):n},Nn.escapeRegExp=function(n){return(n=u(n))&&xn.test(n)?n.replace(wn,l):n||"(?:)"},Nn.every=ee,Nn.find=ao,Nn.findIndex=Gu,Nn.findKey=Po,Nn.findLast=co,
Nn.findLastIndex=Ju,Nn.findLastKey=zo,Nn.findWhere=function(n,t){return ao(n,At(t))},Nn.first=Zr,Nn.floor=ii,Nn.get=function(n,t,r){return n=null==n?w:mt(n,Mr(t),t+""),n===w?r:n},Nn.gt=he,Nn.gte=function(n,t){return n>=t},Nn.has=function(n,t){if(null==n)return false;var r=eu.call(n,t);if(!r&&!Wr(t)){if(t=Mr(t),n=1==t.length?n:mt(n,St(t,0,-1)),null==n)return false;t=Gr(t),r=eu.call(n,t)}return r||Lr(n.length)&&Ur(t,n.length)&&(Wo(n)||_e(n)||Ae(n))},Nn.identity=Ne,Nn.includes=oe,Nn.indexOf=Yr,Nn.inRange=function(n,t,r){
return t=+t||0,r===w?(r=t,t=0):r=+r||0,n>=ku(t,r)&&n<ju(t,r)},Nn.isArguments=_e,Nn.isArray=Wo,Nn.isBoolean=function(n){return true===n||false===n||h(n)&&ou.call(n)==D},Nn.isDate=function(n){return h(n)&&ou.call(n)==M},Nn.isElement=function(n){return!!n&&1===n.nodeType&&h(n)&&!xe(n)},Nn.isEmpty=function(n){return null==n?true:Sr(n)&&(Wo(n)||Ae(n)||_e(n)||h(n)&&ye(n.splice))?!n.length:!Ko(n).length},Nn.isEqual=ve,Nn.isError=ge,Nn.isFinite=function(n){return typeof n=="number"&&bu(n)},Nn.isFunction=ye,Nn.isMatch=function(n,t,r,e){
return r=typeof r=="function"?Dt(r,e,3):w,xt(n,kr(t),r)},Nn.isNaN=function(n){return we(n)&&n!=+n},Nn.isNative=me,Nn.isNull=function(n){return null===n},Nn.isNumber=we,Nn.isObject=de,Nn.isPlainObject=xe,Nn.isRegExp=be,Nn.isString=Ae,Nn.isTypedArray=je,Nn.isUndefined=function(n){return n===w},Nn.kebabCase=Xo,Nn.last=Gr,Nn.lastIndexOf=function(n,t,r){var e=n?n.length:0;if(!e)return-1;var u=e;if(typeof r=="number")u=(0>r?ju(e+r,0):ku(r||0,e-1))+1;else if(r)return u=zt(n,t,true)-1,n=n[u],(t===t?t===n:n!==n)?u:-1;
if(t!==t)return p(n,u,true);for(;u--;)if(n[u]===t)return u;return-1},Nn.lt=ke,Nn.lte=function(n,t){return n<=t},Nn.max=fi,Nn.min=ai,Nn.noConflict=function(){return Yn._=iu,this},Nn.noop=ze,Nn.now=wo,Nn.pad=function(n,t,r){n=u(n),t=+t;var e=n.length;return e<t&&bu(t)?(e=(t-e)/2,t=wu(e),e=du(e),r=_r("",e,r),r.slice(0,t)+n+r):n},Nn.padLeft=Ho,Nn.padRight=Qo,Nn.parseInt=function(n,t,r){return(r?$r(n,t,r):null==t)?t=0:t&&(t=+t),n=We(n),Iu(n,t||(On.test(n)?16:10))},Nn.random=function(n,t,r){r&&$r(n,t,r)&&(t=r=w);
var e=null==n,u=null==t;return null==r&&(u&&typeof n=="boolean"?(r=n,n=1):typeof t=="boolean"&&(r=t,u=true)),e&&u&&(t=1,u=false),n=+n||0,u?(t=n,n=0):t=+t||0,r||n%1||t%1?(r=Ru(),ku(n+r*(t-n+lu("1e-"+((r+"").length-1))),t)):Et(n,t)},Nn.reduce=go,Nn.reduceRight=yo,Nn.repeat=$e,Nn.result=function(n,t,r){var e=null==n?w:Dr(n)[t];return e===w&&(null==n||Wr(t,n)||(t=Mr(t),n=1==t.length?n:mt(n,St(t,0,-1)),e=null==n?w:Dr(n)[Gr(t)]),e=e===w?r:e),ye(e)?e.call(n):e},Nn.round=ci,Nn.runInContext=m,Nn.size=function(n){
var t=n?Vu(n):0;return Lr(t)?t:Ko(n).length},Nn.snakeCase=ni,Nn.some=ae,Nn.sortedIndex=Qu,Nn.sortedLastIndex=no,Nn.startCase=ti,Nn.startsWith=function(n,t,r){return n=u(n),r=null==r?0:ku(0>r?0:+r||0,n.length),n.lastIndexOf(t,r)==r},Nn.sum=function(n,t,r){if(r&&$r(n,t,r)&&(t=w),t=br(t,r,3),1==t.length){n=Wo(n)?n:Br(n),r=n.length;for(var e=0;r--;)e+=+t(n[r])||0;n=e}else n=Ft(n,t);return n},Nn.template=function(n,t,r){var e=Nn.templateSettings;r&&$r(n,t,r)&&(t=r=w),n=u(n),t=rt(et({},r||t),e,tt),r=rt(et({},t.imports),e.imports,tt);
var o,i,f=Ko(r),a=Nt(r,f),c=0;r=t.interpolate||Cn;var l="__p+='";r=Ge((t.escape||Cn).source+"|"+r.source+"|"+(r===gn?jn:Cn).source+"|"+(t.evaluate||Cn).source+"|$","g");var p="sourceURL"in t?"//# sourceURL="+t.sourceURL+"\n":"";if(n.replace(r,function(t,r,e,u,f,a){return e||(e=u),l+=n.slice(c,a).replace(Sn,s),r&&(o=true,l+="'+__e("+r+")+'"),f&&(i=true,l+="';"+f+";\n__p+='"),e&&(l+="'+((__t=("+e+"))==null?'':__t)+'"),c=a+t.length,t}),l+="';",(t=t.variable)||(l="with(obj){"+l+"}"),l=(i?l.replace(fn,""):l).replace(an,"$1").replace(cn,"$1;"),
l="function("+(t||"obj")+"){"+(t?"":"obj||(obj={});")+"var __t,__p=''"+(o?",__e=_.escape":"")+(i?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+l+"return __p}",t=ri(function(){return Ke(f,p+"return "+l).apply(w,a)}),t.source=l,ge(t))throw t;return t},Nn.trim=We,Nn.trimLeft=function(n,t,r){var e=n;return(n=u(n))?n.slice((r?$r(e,t,r):null==t)?g(n):o(n,t+"")):n},Nn.trimRight=function(n,t,r){var e=n;return(n=u(n))?(r?$r(e,t,r):null==t)?n.slice(0,y(n)+1):n.slice(0,i(n,t+"")+1):n;
},Nn.trunc=function(n,t,r){r&&$r(n,t,r)&&(t=w);var e=S;if(r=U,null!=t)if(de(t)){var o="separator"in t?t.separator:o,e="length"in t?+t.length||0:e;r="omission"in t?u(t.omission):r}else e=+t||0;if(n=u(n),e>=n.length)return n;if(e-=r.length,1>e)return r;if(t=n.slice(0,e),null==o)return t+r;if(be(o)){if(n.slice(e).search(o)){var i,f=n.slice(0,e);for(o.global||(o=Ge(o.source,(kn.exec(o)||"")+"g")),o.lastIndex=0;n=o.exec(f);)i=n.index;t=t.slice(0,null==i?e:i)}}else n.indexOf(o,e)!=e&&(o=t.lastIndexOf(o),
-1<o&&(t=t.slice(0,o)));return t+r},Nn.unescape=function(n){return(n=u(n))&&pn.test(n)?n.replace(ln,d):n},Nn.uniqueId=function(n){var t=++uu;return u(n)+t},Nn.words=Fe,Nn.all=ee,Nn.any=ae,Nn.contains=oe,Nn.eq=ve,Nn.detect=ao,Nn.foldl=go,Nn.foldr=yo,Nn.head=Zr,Nn.include=oe,Nn.inject=go,Pe(Nn,function(){var n={};return gt(Nn,function(t,r){Nn.prototype[r]||(n[r]=t)}),n}(),false),Nn.sample=fe,Nn.prototype.sample=function(n){return this.__chain__||null!=n?this.thru(function(t){return fe(t,n)}):fe(this.value());
},Nn.VERSION=x,Kn("bind bindKey curry curryRight partial partialRight".split(" "),function(n){Nn[n].placeholder=Nn}),Kn(["drop","take"],function(n,t){zn.prototype[n]=function(r){var e=this.__filtered__;if(e&&!t)return new zn(this);r=null==r?1:ju(wu(r)||0,0);var u=this.clone();return e?u.__takeCount__=ku(u.__takeCount__,r):u.__views__.push({size:r,type:n+(0>u.__dir__?"Right":"")}),u},zn.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),Kn(["filter","map","takeWhile"],function(n,t){
var r=t+1,e=r!=N;zn.prototype[n]=function(n,t){var u=this.clone();return u.__iteratees__.push({iteratee:br(n,t,1),type:r}),u.__filtered__=u.__filtered__||e,u}}),Kn(["first","last"],function(n,t){var r="take"+(t?"Right":"");zn.prototype[n]=function(){return this[r](1).value()[0]}}),Kn(["initial","rest"],function(n,t){var r="drop"+(t?"":"Right");zn.prototype[n]=function(){return this.__filtered__?new zn(this):this[r](1)}}),Kn(["pluck","where"],function(n,t){var r=t?"filter":"map",e=t?At:Be;zn.prototype[n]=function(n){
return this[r](e(n))}}),zn.prototype.compact=function(){return this.filter(Ne)},zn.prototype.reject=function(n,t){return n=br(n,t,1),this.filter(function(t){return!n(t)})},zn.prototype.slice=function(n,t){n=null==n?0:+n||0;var r=this;return r.__filtered__&&(0<n||0>t)?new zn(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==w&&(t=+t||0,r=0>t?r.dropRight(-t):r.take(t-n)),r)},zn.prototype.takeRightWhile=function(n,t){return this.reverse().takeWhile(n,t).reverse()},zn.prototype.toArray=function(){return this.take(Cu);
},gt(zn.prototype,function(n,t){var r=/^(?:filter|map|reject)|While$/.test(t),e=/^(?:first|last)$/.test(t),u=Nn[e?"take"+("last"==t?"Right":""):t];u&&(Nn.prototype[t]=function(){var t=e?[1]:arguments,o=this.__chain__,i=this.__wrapped__,f=!!this.__actions__.length,a=i instanceof zn,c=t[0],l=a||Wo(i);l&&r&&typeof c=="function"&&1!=c.length&&(a=l=false);var s=function(n){return e&&o?u(n,1)[0]:u.apply(w,Hn([n],t))},c={func:re,args:[s],thisArg:w},f=a&&!f;return e&&!o?f?(i=i.clone(),i.__actions__.push(c),
n.call(i)):u.call(w,this.value())[0]:!e&&l?(i=f?i:new zn(this),i=n.apply(i,t),i.__actions__.push(c),new Pn(i,o)):this.thru(s)})}),Kn("join pop push replace shift sort splice split unshift".split(" "),function(n){var t=(/^(?:replace|split)$/.test(n)?tu:He)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=!Tu.spliceObjects&&/^(?:pop|shift|splice)$/.test(n),u=/^(?:join|pop|replace|shift)$/.test(n),o=e?function(){var n=t.apply(this,arguments);return 0===this.length&&delete this[0],n}:t;Nn.prototype[n]=function(){
var n=arguments;return u&&!this.__chain__?o.apply(this.value(),n):this[r](function(t){return o.apply(t,n)})}}),gt(zn.prototype,function(n,t){var r=Nn[t];if(r){var e=r.name+"";(Fu[e]||(Fu[e]=[])).push({name:t,func:r})}}),Fu[hr(w,A).name]=[{name:"wrapper",func:w}],zn.prototype.clone=function(){var n=new zn(this.__wrapped__);return n.__actions__=qn(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=qn(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=qn(this.__views__),
n},zn.prototype.reverse=function(){if(this.__filtered__){var n=new zn(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n},zn.prototype.value=function(){var n,t=this.__wrapped__.value(),r=this.__dir__,e=Wo(t),u=0>r,o=e?t.length:0;n=0;for(var i=o,f=this.__views__,a=-1,c=f.length;++a<c;){var l=f[a],s=l.size;switch(l.type){case"drop":n+=s;break;case"dropRight":i-=s;break;case"take":i=ku(i,n+s);break;case"takeRight":n=ju(n,i-s)}}if(n={start:n,end:i},i=n.start,f=n.end,n=f-i,
u=u?f:i-1,i=this.__iteratees__,f=i.length,a=0,c=ku(n,this.__takeCount__),!e||o<F||o==n&&c==n)return Pt(t,this.__actions__);e=[];n:for(;n--&&a<c;){for(u+=r,o=-1,l=t[u];++o<f;){var p=i[o],s=p.type,p=p.iteratee(l);if(s==N)l=p;else if(!p){if(s==L)continue n;break n}}e[a++]=l}return e},Nn.prototype.chain=function(){return te(this)},Nn.prototype.commit=function(){return new Pn(this.value(),this.__chain__)},Nn.prototype.concat=oo,Nn.prototype.plant=function(n){for(var t,r=this;r instanceof Tn;){var e=qr(r);
t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},Nn.prototype.reverse=function(){var n=this.__wrapped__,t=function(n){return n.reverse()};return n instanceof zn?(this.__actions__.length&&(n=new zn(this)),n=n.reverse(),n.__actions__.push({func:re,args:[t],thisArg:w}),new Pn(n,this.__chain__)):this.thru(t)},Nn.prototype.toString=function(){return this.value()+""},Nn.prototype.run=Nn.prototype.toJSON=Nn.prototype.valueOf=Nn.prototype.value=function(){return Pt(this.__wrapped__,this.__actions__);
},Nn.prototype.collect=Nn.prototype.map,Nn.prototype.head=Nn.prototype.first,Nn.prototype.select=Nn.prototype.filter,Nn.prototype.tail=Nn.prototype.rest,Nn}var w,x="3.10.1",b=1,A=2,j=4,k=8,O=16,I=32,R=64,E=128,C=256,S=30,U="...",$=150,W=16,F=200,L=1,N=2,T="Expected a function",P="__lodash_placeholder__",z="[object Arguments]",B="[object Array]",D="[object Boolean]",M="[object Date]",q="[object Error]",K="[object Function]",V="[object Number]",Z="[object Object]",Y="[object RegExp]",G="[object String]",J="[object ArrayBuffer]",X="[object Float32Array]",H="[object Float64Array]",Q="[object Int8Array]",nn="[object Int16Array]",tn="[object Int32Array]",rn="[object Uint8Array]",en="[object Uint8ClampedArray]",un="[object Uint16Array]",on="[object Uint32Array]",fn=/\b__p\+='';/g,an=/\b(__p\+=)''\+/g,cn=/(__e\(.*?\)|\b__t\))\+'';/g,ln=/&(?:amp|lt|gt|quot|#39|#96);/g,sn=/[&<>"'`]/g,pn=RegExp(ln.source),hn=RegExp(sn.source),_n=/<%-([\s\S]+?)%>/g,vn=/<%([\s\S]+?)%>/g,gn=/<%=([\s\S]+?)%>/g,yn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,dn=/^\w*$/,mn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,wn=/^[:!,]|[\\^$.*+?()[\]{}|\/]|(^[0-9a-fA-Fnrtuvx])|([\n\r\u2028\u2029])/g,xn=RegExp(wn.source),bn=/[\u0300-\u036f\ufe20-\ufe23]/g,An=/\\(\\)?/g,jn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,kn=/\w*$/,On=/^0[xX]/,In=/^\[object .+?Constructor\]$/,Rn=/^\d+$/,En=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,Cn=/($^)/,Sn=/['\n\r\u2028\u2029\\]/g,Un=RegExp("[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?=[A-Z\\xc0-\\xd6\\xd8-\\xde][a-z\\xdf-\\xf6\\xf8-\\xff]+)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+|[A-Z\\xc0-\\xd6\\xd8-\\xde]+|[0-9]+","g"),$n="Array ArrayBuffer Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Math Number Object RegExp Set String _ clearTimeout isFinite parseFloat parseInt setTimeout TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap".split(" "),Wn="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),Fn={};
Fn[X]=Fn[H]=Fn[Q]=Fn[nn]=Fn[tn]=Fn[rn]=Fn[en]=Fn[un]=Fn[on]=true,Fn[z]=Fn[B]=Fn[J]=Fn[D]=Fn[M]=Fn[q]=Fn[K]=Fn["[object Map]"]=Fn[V]=Fn[Z]=Fn[Y]=Fn["[object Set]"]=Fn[G]=Fn["[object WeakMap]"]=false;var Ln={};Ln[z]=Ln[B]=Ln[J]=Ln[D]=Ln[M]=Ln[X]=Ln[H]=Ln[Q]=Ln[nn]=Ln[tn]=Ln[V]=Ln[Z]=Ln[Y]=Ln[G]=Ln[rn]=Ln[en]=Ln[un]=Ln[on]=true,Ln[q]=Ln[K]=Ln["[object Map]"]=Ln["[object Set]"]=Ln["[object WeakMap]"]=false;var Nn={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a",
"\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y",
"\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss"},Tn={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","`":"&#96;"},Pn={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'","&#96;":"`"},zn={"function":true,object:true},Bn={0:"x30",1:"x31",2:"x32",3:"x33",4:"x34",5:"x35",6:"x36",7:"x37",8:"x38",9:"x39",A:"x41",B:"x42",C:"x43",D:"x44",E:"x45",F:"x46",a:"x61",b:"x62",c:"x63",d:"x64",e:"x65",f:"x66",n:"x6e",r:"x72",t:"x74",u:"x75",v:"x76",x:"x78"},Dn={"\\":"\\",
"'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Mn=zn[typeof exports]&&exports&&!exports.nodeType&&exports,qn=zn[typeof module]&&module&&!module.nodeType&&module,Kn=zn[typeof self]&&self&&self.Object&&self,Vn=zn[typeof window]&&window&&window.Object&&window,Zn=qn&&qn.exports===Mn&&Mn,Yn=Mn&&qn&&typeof global=="object"&&global&&global.Object&&global||Vn!==(this&&this.window)&&Vn||Kn||this,Gn=function(){try{Object({toString:0}+"")}catch(n){return function(){return false}}return function(n){
return typeof n.toString!="function"&&typeof(n+"")=="string"}}(),Jn=m();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Yn._=Jn, define(function(){return Jn})):Mn&&qn?Zn?(qn.exports=Jn)._=Jn:Mn._=Jn:Yn._=Jn}).call(this);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,23 @@
if (typeof Object.assign != 'function') {
(function () {
Object.assign = function (target) {
'use strict';
if (target === undefined || target === null) {
throw new TypeError('Cannot convert undefined or null to object');
}
var output = Object(target);
for (var index = 1; index < arguments.length; index++) {
var source = arguments[index];
if (source !== undefined && source !== null) {
for (var nextKey in source) {
if (Object.prototype.hasOwnProperty.call(source, nextKey)) {
output[nextKey] = source[nextKey];
}
}
}
}
return output;
};
})();
}

View File

@ -0,0 +1,339 @@
var appName;
var popupMask;
var popupDialog;
var clientId;
var realm;
var redirect_uri;
var clientSecret;
var scopeSeparator;
var additionalQueryStringParams;
function handleLogin() {
var scopes = [];
var auths = window.swaggerUi.api.authSchemes || window.swaggerUi.api.securityDefinitions;
if(auths) {
var key;
var defs = auths;
for(key in defs) {
var auth = defs[key];
if(auth.type === 'oauth2' && auth.scopes) {
var scope;
if(Array.isArray(auth.scopes)) {
// 1.2 support
var i;
for(i = 0; i < auth.scopes.length; i++) {
scopes.push(auth.scopes[i]);
}
}
else {
// 2.0 support
for(scope in auth.scopes) {
scopes.push({scope: scope, description: auth.scopes[scope], OAuthSchemeKey: key});
}
}
}
}
}
if(window.swaggerUi.api
&& window.swaggerUi.api.info) {
appName = window.swaggerUi.api.info.title;
}
$('.api-popup-dialog').remove();
popupDialog = $(
[
'<div class="api-popup-dialog">',
'<div class="api-popup-title">Select OAuth2.0 Scopes</div>',
'<div class="api-popup-content">',
'<p>Scopes are used to grant an application different levels of access to data on behalf of the end user. Each API may declare one or more scopes.',
'<a href="#">Learn how to use</a>',
'</p>',
'<p><strong>' + appName + '</strong> API requires the following scopes. Select which ones you want to grant to Swagger UI.</p>',
'<ul class="api-popup-scopes">',
'</ul>',
'<p class="error-msg"></p>',
'<div class="api-popup-actions"><button class="api-popup-authbtn api-button green" type="button">Authorize</button><button class="api-popup-cancel api-button gray" type="button">Cancel</button></div>',
'</div>',
'</div>'].join(''));
$(document.body).append(popupDialog);
//TODO: only display applicable scopes (will need to pass them into handleLogin)
popup = popupDialog.find('ul.api-popup-scopes').empty();
for (i = 0; i < scopes.length; i ++) {
scope = scopes[i];
str = '<li><input type="checkbox" id="scope_' + i + '" scope="' + scope.scope + '"' +'" oauthtype="' + scope.OAuthSchemeKey +'"/>' + '<label for="scope_' + i + '">' + scope.scope ;
if (scope.description) {
if ($.map(auths, function(n, i) { return i; }).length > 1) //if we have more than one scheme, display schemes
str += '<br/><span class="api-scope-desc">' + scope.description + ' ('+ scope.OAuthSchemeKey+')' +'</span>';
else
str += '<br/><span class="api-scope-desc">' + scope.description + '</span>';
}
str += '</label></li>';
popup.append(str);
}
var $win = $(window),
dw = $win.width(),
dh = $win.height(),
st = $win.scrollTop(),
dlgWd = popupDialog.outerWidth(),
dlgHt = popupDialog.outerHeight(),
top = (dh -dlgHt)/2 + st,
left = (dw - dlgWd)/2;
popupDialog.css({
top: (top < 0? 0 : top) + 'px',
left: (left < 0? 0 : left) + 'px'
});
popupDialog.find('button.api-popup-cancel').click(function() {
popupMask.hide();
popupDialog.hide();
popupDialog.empty();
popupDialog = [];
});
$('button.api-popup-authbtn').unbind();
popupDialog.find('button.api-popup-authbtn').click(function() {
popupMask.hide();
popupDialog.hide();
var authSchemes = window.swaggerUi.api.authSchemes;
var host = window.location;
var pathname = location.pathname.substring(0, location.pathname.lastIndexOf("/"));
var defaultRedirectUrl = host.protocol + '//' + host.host + pathname + '/o2c.html';
var redirectUrl = window.oAuthRedirectUrl || defaultRedirectUrl;
var url = null;
var scopes = []
var o = popup.find('input:checked');
var OAuthSchemeKeys = [];
var state;
for(k =0; k < o.length; k++) {
var scope = $(o[k]).attr('scope');
if (scopes.indexOf(scope) === -1)
scopes.push(scope);
var OAuthSchemeKey = $(o[k]).attr('oauthtype');
if (OAuthSchemeKeys.indexOf(OAuthSchemeKey) === -1)
OAuthSchemeKeys.push(OAuthSchemeKey);
}
//TODO: merge not replace if scheme is different from any existing
//(needs to be aware of schemes to do so correctly)
window.enabledScopes=scopes;
for (var key in authSchemes) {
if (authSchemes.hasOwnProperty(key) && OAuthSchemeKeys.indexOf(key) != -1) { //only look at keys that match this scope.
var flow = authSchemes[key].flow;
if(authSchemes[key].type === 'oauth2' && flow && (flow === 'implicit' || flow === 'accessCode')) {
var dets = authSchemes[key];
url = dets.authorizationUrl + '?response_type=' + (flow === 'implicit' ? 'token' : 'code');
window.swaggerUi.tokenName = dets.tokenName || 'access_token';
window.swaggerUi.tokenUrl = (flow === 'accessCode' ? dets.tokenUrl : null);
state = key;
}
else if(authSchemes[key].type === 'oauth2' && flow && (flow === 'application')) {
var dets = authSchemes[key];
window.swaggerUi.tokenName = dets.tokenName || 'access_token';
clientCredentialsFlow(scopes, dets.tokenUrl, key);
return;
}
else if(authSchemes[key].grantTypes) {
// 1.2 support
var o = authSchemes[key].grantTypes;
for(var t in o) {
if(o.hasOwnProperty(t) && t === 'implicit') {
var dets = o[t];
var ep = dets.loginEndpoint.url;
url = dets.loginEndpoint.url + '?response_type=token';
window.swaggerUi.tokenName = dets.tokenName;
}
else if (o.hasOwnProperty(t) && t === 'accessCode') {
var dets = o[t];
var ep = dets.tokenRequestEndpoint.url;
url = dets.tokenRequestEndpoint.url + '?response_type=code';
window.swaggerUi.tokenName = dets.tokenName;
}
}
}
}
}
redirect_uri = redirectUrl;
url += '&redirect_uri=' + encodeURIComponent(redirectUrl);
url += '&realm=' + encodeURIComponent(realm);
url += '&client_id=' + encodeURIComponent(clientId);
url += '&scope=' + encodeURIComponent(scopes.join(scopeSeparator));
url += '&state=' + encodeURIComponent(state);
for (var key in additionalQueryStringParams) {
url += '&' + key + '=' + encodeURIComponent(additionalQueryStringParams[key]);
}
window.open(url);
});
popupMask.show();
popupDialog.show();
return;
}
function handleLogout() {
for(key in window.swaggerUi.api.clientAuthorizations.authz){
window.swaggerUi.api.clientAuthorizations.remove(key)
}
window.enabledScopes = null;
$('.api-ic.ic-on').addClass('ic-off');
$('.api-ic.ic-on').removeClass('ic-on');
// set the info box
$('.api-ic.ic-warning').addClass('ic-error');
$('.api-ic.ic-warning').removeClass('ic-warning');
}
function initOAuth(opts) {
var o = (opts||{});
var errors = [];
appName = (o.appName||errors.push('missing appName'));
popupMask = (o.popupMask||$('#api-common-mask'));
popupDialog = (o.popupDialog||$('.api-popup-dialog'));
clientId = (o.clientId||errors.push('missing client id'));
clientSecret = (o.clientSecret||null);
realm = (o.realm||errors.push('missing realm'));
scopeSeparator = (o.scopeSeparator||' ');
additionalQueryStringParams = (o.additionalQueryStringParams||{});
if(errors.length > 0){
log('auth unable initialize oauth: ' + errors);
return;
}
$('pre code').each(function(i, e) {hljs.highlightBlock(e)});
$('.api-ic').unbind();
$('.api-ic').click(function(s) {
if($(s.target).hasClass('ic-off'))
handleLogin();
else {
handleLogout();
}
false;
});
}
function clientCredentialsFlow(scopes, tokenUrl, OAuthSchemeKey) {
var params = {
'client_id': clientId,
'client_secret': clientSecret,
'scope': scopes.join(' '),
'grant_type': 'client_credentials'
}
$.ajax(
{
url : tokenUrl,
type: "POST",
data: params,
success:function(data, textStatus, jqXHR)
{
onOAuthComplete(data,OAuthSchemeKey);
},
error: function(jqXHR, textStatus, errorThrown)
{
onOAuthComplete("");
}
});
}
window.processOAuthCode = function processOAuthCode(data) {
var OAuthSchemeKey = data.state;
var params = {
'client_id': clientId,
'code': data.code,
'grant_type': 'authorization_code',
'redirect_uri': redirect_uri
};
if (clientSecret) {
params.client_secret = clientSecret;
}
$.ajax(
{
url : window.swaggerUi.tokenUrl,
type: "POST",
data: params,
success:function(data, textStatus, jqXHR)
{
onOAuthComplete(data, OAuthSchemeKey);
},
error: function(jqXHR, textStatus, errorThrown)
{
onOAuthComplete("");
}
});
};
window.onOAuthComplete = function onOAuthComplete(token,OAuthSchemeKey) {
if(token) {
if(token.error) {
var checkbox = $('input[type=checkbox],.secured')
checkbox.each(function(pos){
checkbox[pos].checked = false;
});
alert(token.error);
}
else {
var b = token[window.swaggerUi.tokenName];
if (!OAuthSchemeKey){
OAuthSchemeKey = token.state;
}
if(b){
// if all roles are satisfied
var o = null;
$.each($('.auth .api-ic .api_information_panel'), function(k, v) {
var children = v;
if(children && children.childNodes) {
var requiredScopes = [];
$.each((children.childNodes), function (k1, v1){
var inner = v1.innerHTML;
if(inner)
requiredScopes.push(inner);
});
var diff = [];
for(var i=0; i < requiredScopes.length; i++) {
var s = requiredScopes[i];
if(window.enabledScopes && window.enabledScopes.indexOf(s) == -1) {
diff.push(s);
}
}
if(diff.length > 0){
o = v.parentNode.parentNode;
$(o.parentNode).find('.api-ic.ic-on').addClass('ic-off');
$(o.parentNode).find('.api-ic.ic-on').removeClass('ic-on');
// sorry, not all scopes are satisfied
$(o).find('.api-ic').addClass('ic-warning');
$(o).find('.api-ic').removeClass('ic-error');
}
else {
o = v.parentNode.parentNode;
$(o.parentNode).find('.api-ic.ic-off').addClass('ic-on');
$(o.parentNode).find('.api-ic.ic-off').removeClass('ic-off');
// all scopes are satisfied
$(o).find('.api-ic').addClass('ic-info');
$(o).find('.api-ic').removeClass('ic-warning');
$(o).find('.api-ic').removeClass('ic-error');
}
}
});
window.swaggerUi.api.clientAuthorizations.add(window.OAuthSchemeKey, new SwaggerClient.ApiKeyAuthorization('Authorization', 'Bearer ' + b, 'header'));
window.swaggerUi.load();
}
}
}
};

Some files were not shown because too many files have changed in this diff Show More