1461160471-ebb53b8d-b792-4511-a9bf-66790e67e99e

1. A method of preparing data to create two or more mask layouts for photolithographic printing of a desired pattern of features on a wafer, comprising:
receiving data representative of a desired layout design including a number of features to be created on a wafer;
designating adjacent features in the desired layout design into two or more groups;
identifying features that are assigned to the same group that are within a predetermined distance of each other;
introducing one or more cut points to an identified feature to break the identified feature into smaller features;
re-designating the adjacent features in the desired layout design including the cut points into two or more groups; and
using a computer, assigning the features in each of the two or more groups to separate mask layouts, wherein the separate mask layouts are for separate masks to be separately exposed during the photolithographic printing.
2. The method of claim 1, wherein the features are designated into two or more groups with a coloring algorithm.
3. The method of claim 2, wherein the groups are data layers in a layout database.
4. The method of claim 1, wherein the features are designated by defining a new target layer of features positioned between the features of the desired layout pattern and applying a phase coloring algorithm to the new target layer.
5. The method of claim 4, where the phase coloring algorithm operates by:
defining a graph of features having nodes that represent the features that are joined by links representing the features of the new target layer; and
searching the graph and designating the nodes to different groups.
6. The method of claim 5, wherein the graph is searched with a depth first search algorithm.
7. The method of claim 1, further comprising manufacturing separate masks for each of the separate mask layouts.
8. The method of claim 1, further comprising manufacturing an integrated circuit using the separate mask layouts.
9. A method of preparing data to create two or more mask layouts for photolithographic printing of a desired pattern of features on a wafer, comprising:
receiving data representative of a desired layout design including a number of features to be created on a wafer;
designating adjacent features in the desired layout design into two or more groups;
identifying features that are assigned to the same group that are within a predetermined distance of each other;
introducing one or more cut points to an identified feature to break the identified feature into smaller features;
re-designating the adjacent features in the desired layout design including the cut points into two or more re-designated groups, wherein the two or more re-designated groups include a first group and a second group; and
using a computer, assigning the features in each of the two or more re-designated groups to separate mask layouts for separate masks, wherein:
the separate mask layouts include a first mask layout and a second mask layout;
features re-designated into the first group are assigned to the first mask layout; and
features re-designated into the second group are assigned to the second mask layout.
10. The method of claim 9, wherein the features are designated by defining a new target layer of features positioned between the features of the desired layout pattern and applying a phase coloring algorithm to the new target layer.
11. The method of claim 9, further comprising:
manufacturing a first mask using the first mask layout; and
manufacturing a second mask using the second mask layout.
12. The method of claim 9, further comprising:
printing features assigned to the first mask layout on a wafer; and
subsequently printing features assigned to the second mask layout on the wafer.
13. The method of claim 9, further comprising manufacturing an integrated circuit, wherein the manufacturing comprises:
exposing a wafer to create features assigned to the first mask layout; and
after the exposing, exposing the wafer again to create features assigned to the second mask layout.
14. A computer-readable storage device storing computer-executable instructions that when executed by a computer system, cause the computer system to perform a method of preparing data to create two or more mask layouts for photolithographic printing of a desired pattern of features on a wafer, the method comprising:
receiving data representative of a desired layout design including a number of features to be created on a wafer;
designating adjacent features in the desired layout design into two or more groups;
identifying features that are assigned to the same group that are within a predetermined distance of each other;
introducing one or more cut points to an identified feature to break the identified feature into smaller features;
re-designating the adjacent features in the desired layout design including the cut points into two or more groups; and
assigning the features in each of the two or more groups to separate mask layouts, wherein the separate mask layouts are for separate masks to be separately exposed during the photolithographic printing.
15. The computer-readable storage device of claim 14, wherein the features are designated into two or more groups with a coloring algorithm.
16. The computer-readable storage device of claim 15, wherein the groups are data layers in a layout database.
17. The computer-readable storage device of claim 14, wherein the features are designated by defining a new target layer of features positioned between the features of the desired layout pattern and applying a phase coloring algorithm to the new target layer.
18. The computer-readable storage device of claim 17, where the phase coloring algorithm operates by:
defining a graph of features having nodes that represent the features that are joined by links representing the features of the new target layer; and
searching the graph and designating the nodes to different groups.
19. The computer-readable storage device of claim 18, wherein the graph is searched with a depth first search algorithm.
20. The computer-readable storage device of claim 14, wherein:
the two or more groups include a first group and a second group;
the separate mask layouts include a first mask layout and a second mask layout;
features re-designated into the first group are assigned to the first mask layout; and
features re-designated into the second group are assigned to the second mask layout.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A method for securely proving the location of a device, comprising:
receiving one or more short range signals from a beacon in a location;
obtaining data from at least one of the short range signals, wherein the data is location-dependent and time-dependent; and
securely determining the location of the device by verifying that information related to the data obtained from the at least one of the short range signals is consistent with expected information for a device currently located in the location.
2. The method of claim 1, wherein the short range signals comprise one or more of Bluetooth LE beacon signals, Bluetooth signals, near field communication signals, acoustic signals, infrared signals, or visual signals.
3. The method of claim 1, wherein the obtained data comprises one or more of cryptographic data or a digitally signed location identifier.
4. The method of claim 1, further comprising communicating the information related to the data obtained from the at least one of the short range signals to a server and wherein the communicated information further comprises an identifier indicating the user of the device.
5. The method of claim 4, further comprising receiving additional data from the server and executing an application on the basis of the additional data.
6. The method of claim 1, further wherein the securely determined current location of the device is provided to one or more applications or services on the device through inter-process communication.
7. A method for securely proving the location of a device, comprising:
transmitting a time-varying and location-dependent short range signal from a beacon at a location;
receiving data related to the short range signal from a device; and
securely determining that the device is in the location by determining if the received data is consistent with data expected to be received from a device currently located in the location.
8. The method of claim 7, wherein securely determining comprises one or more of cryptographic processing, signal analysis, table lookup, machine learning, or matching of the received data.
9. The method of claim 7, further comprising providing sensitive data to the device upon securely determining the device’s location.
10. The method of claim 7, further comprising not providing sensitive data to the device upon securely determining the device’s location.
11. The method of claim 7, further comprising authorizing a financial transaction on the basis of the secure determination of the device’s location.
12. The method of claim 7, further comprising not authorizing a financial transaction on the basis of the secure determination of the device’s location.
13. The method of claim 7, wherein the received data further comprises a user identifier indicating the user of the device.
14. The method of claim 13, further comprising identifying a user account associated with the user of the device based on the user identifier.
15. The method of claim 14, further comprising awarding a reward to the user account based on the result of the secure determination.
16. The method of claim 7, further comprising granting the device access to a network accessible resource based on the result of the secure determination.
17. The method of claim 7, further comprising communicating the location determination to a computational service.
18. The method of claim 17, wherein the communicated location determination is a command to change behavior of the computational service.
19. The method of claim 18, wherein the command comprises one or more of controlling access to data within the computational service, changing the control flow of a computation performed by the computational service, querying a database of the computational service, or authenticating with another server.
20. A system comprising:
a device comprising:
a receiver capable of receiving a short-range signal from a beacon at a location;
a processor capable of obtaining data from the short-range signal, wherein the data is location-dependent and time-dependent; and
a transmitter capable of communicating information related to the obtained data to a server; and

a server comprising:
a receiver capable of receiving the data related to the obtained data from the device; and
a location facility capable of securely determining the location of the device, wherein securely determining the location of the device comprises verifying that the received data is consistent with the data expected to be received from a device currently located in the location.