Patent Publication Number: US-2022221800-A1

Title: Writing data generating method and multi charged particle beam writing apparatus

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application is a divisional of and claims benefit under 35 U.S.C. § 120 to U.S. patent application Ser. No. 16/595,677, filed on Oct. 8, 2019, which claims the benefit of priority from Japanese Patent Application No. 2018-194505, filed on Oct. 15, 2018, the entire contents of which are incorporated herein by reference. 
    
    
     FIELD 
     The present invention relates to a writing data generating method and a multi charged particle beam writing apparatus. 
     BACKGROUND 
     With an increase in the packing density of LSIs, the required linewidths of circuits included in semiconductor devices become finer year by year. To form a desired circuit pattern on a semiconductor device, a method is employed in which a high-precision original pattern (i.e., a mask, or also particularly called reticle, which is used in a stepper or a scanner) formed on quartz is transferred to a wafer in a reduced manner by using a reduced-projection exposure apparatus. The high-precision original pattern is written by using an electron-beam writing apparatus, in which a so-called electron-beam lithography technique is employed. 
     As an electron beam writing apparatus, for example, a multi-beam writing apparatus is known, which uses multiple beams to irradiate with many beams at a time and provides improved throughput. In the multi-beam writing apparatus, for example, an electron beam emitted from an electron gun passes through an aperture member with a plurality of holes to form multiple beams, and each beam is blanking-controlled by a blanking plate. Beams that have not been blocked are reduced in size by an optical system and projected onto a mask (writing target) at desired positions. 
     To perform electron beam writing using the multi-beam writing apparatus, the layout of a semiconductor integrated circuit is designed first to generate design data as layout data. By dividing a polygonal figure contained in the design data into a plurality of trapezoids, writing data input to the multi-beam writing apparatus is generated. The writing data includes, for each of the trapezoids, coordinate data of a placement origin, which is one vertex of the trapezoid, and data representing a displacement from the placement origin to each of the other three vertices. 
     When the design data includes a figure with curves, such as an elliptical figure, or a figure with both curves and straight lines, the figure is approximated to a polygon to generate writing data. When high-precision approximation is performed, the resulting increase in the number of vertices or figures leads to a larger amount of writing data. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a schematic diagram of a multi charged particle beam writing apparatus according to an embodiment of the present invention. 
         FIG. 2  is a flowchart illustrating a writing data generating method according to the embodiment. 
         FIG. 3  is a diagram illustrating an exemplary representation of a figure containing both curves and straight lines. 
         FIG. 4  is a diagram illustrating an exemplary data structure of writing data. 
         FIG. 5  is a diagram illustrating an exemplary bounding box. 
         FIG. 6  is a diagram illustrating an exemplary data structure of writing data according to another embodiment. 
         FIG. 7  is a schematic block diagram of a pattern inspecting apparatus. 
     
    
    
     DETAILED DESCRIPTION 
     In one embodiment, a writing data generating method is for generating writing data used in a multi charged particle beam writing apparatus. The method includes calculating, for a figure containing a curve and a straight line included in design data, a plurality of control points representing the curve and a plurality of vertices of the curve and straight line, and expressing a position of each of the control points and vertices as a displacement from an adjacent control point or vertex to generate the writing data. 
     An embodiment of the present invention will be described below on the basis of the drawings. 
       FIG. 1  is a schematic diagram of a multi charged particle beam writing apparatus that performs writing using writing data, according to the present embodiment. The present embodiment describes a configuration that uses electron beams as an example of charged particle beams. The charged particle beams are not limited to electron beams and may be other charged particle beams, such as ion beams. 
     A writing apparatus  1  illustrated in  FIG. 1  includes a writer  10  configured to irradiate a target object, such as a mask or wafer, with electron beams to write a desired pattern thereon, and a controller  50  configured to control the writing operation of the writer  10 . The writer  10  includes an electron beam barrel  12  and a writing chamber  30 . 
     The electron beam barrel  12  includes an electron gun  14 , an illuminating lens  16 , an aperture member  18 , a blanking plate  20 , a reducing lens  22 , a limiting aperture member  24 , an objective lens  26 , and a deflector  28  which are disposed therein. The writing chamber  30  includes an XY stage  32  disposed therein. A mask blank  34 , which is a writing target substrate, is placed on the XY stage  32 . Examples of the target object include a wafer and an exposure mask used to transfer a pattern onto a wafer using a step-and-repeat exposure system or extreme ultraviolet exposure system (e.g., stepper or scanner) in which an excimer laser serves as a light source. Examples of the writing target substrate also include a mask having a pattern already formed thereon. For example, for a Levenson mask which requires two writing passes, a mask with a pattern written thereon in the first pass may be subjected to the second pattern writing. A mirror  36  used to measure the position of the XY stage  32  is also disposed on the XY stage  32 . 
     The controller  50  includes a control computer  52 , deflection control circuits  54  and  56 , and a stage position detector  58 . The control computer  52 , the deflection control circuits  54  and  56 , and the stage position detector  58  are connected to each other via a bus. 
     An electron beam  40  emitted from the electron gun  14  substantially perpendicularly illuminates the entire aperture member  18  through the illuminating lens  16 . The aperture member  18  has holes (openings) arranged in a matrix at a predetermined array pitch. The electron beam  40  illuminates a region including all the holes in the aperture member  18 . Allowing part of the electron beam  40  to pass through each of the plurality of holes produces multiple beams  40   a  to  40   e  illustrated in  FIG. 1 . 
     The blanking plate  20  has through holes which are formed therein to coincide with the respective positions of the holes in the aperture member  18 , and each of the through holes is provided with a blanker composed of two electrodes in a pair. The electron beams  40   a  to  40   e  passing through the respective through holes are each independently deflected by a voltage applied thereto by the corresponding blanker, and thus blanking-controlled by the deflection. The plurality of blankers thus each perform blanking deflection of a corresponding one of the multiple beams passed through the plurality holes in the aperture member  18 . 
     After passing through the blanking plate  20 , the multiple beams  40   a  to  40   e  are reduced in size by the reducing lens  22  and travel toward a central hole formed in the limiting aperture member  24 . Electron beams deflected by the blankers of the blanking plate  20  deviate from the central hole in the limiting aperture member  24  and are blocked by the limiting aperture member  24 . On the other hand, electron beams not deflected by the blankers of the blanking plate  20  pass through the central hole in the limiting aperture member  24 . 
     The limiting aperture member  24  is thus configured to block the beams deflected by the blankers of the blanking plate  20  to be turned off. The beams passed through the limiting aperture member  24  after being turned on before being turned off are beams that form a single shot. The multiple beams  40   a  to  40   e  passed through the limiting aperture member  24  are focused by the objective lens  26  to form a pattern image with a desired reduction ratio. The beams (or all multiple beams) passed through the limiting aperture member  24  are deflected together by the deflector  28  in the same direction, and projected onto the mask blank  34  at their respective beam irradiation positions. 
     During continuous movement of the XY stage  32 , the beam irradiation positions are controlled by the deflector  28  to follow the movement of the XY stage  32 . The XY stage  32  is moved by a stage control unit (not shown), and the position of the XY stage  32  is detected by the stage position detector  58 . 
     Multiple beams used to irradiate at a time are ideally arranged at a pitch obtained by multiplying the array pitch of the plurality of holes in the aperture member  18  by the desired reduction ratio described above. This writing apparatus performs a writing operation using a raster scanning technique which involves continuous and sequential shot beam irradiation. By blanking control, beams that are required to write a desired pattern are appropriately controlled to be turned on. 
     The control computer  52  reads writing data D 1  from a storage device  60 , and performs multiple stages of data conversion to generate shot data specific to the apparatus. In the shot data, the amount of irradiation and the coordinates of the irradiation position of each shot are defined. For example, the control computer  52  assigns a graphic pattern defined in the writing data to corresponding pixels. Then, for each pixel, the control computer  52  calculates the area density of the graphic pattern to be placed. 
     The control computer  52  calculates, for each pixel, the amount of irradiation of electron beams per shot. For example, the control computer  52  determines the amount of irradiation proportional to the area density of the pixel, and corrects the amount of irradiation by taking into account dimensional variation caused, for example, by a proximity effect, a fogging effect, or a loading effect. 
     The control computer  52  outputs the amount of irradiation of each shot to the deflection control circuit  54  on the basis of shot data. The deflection control circuit  54  divides the input amount of irradiation by a current density to determine an irradiation time t. To perform the corresponding shot, the deflection control circuit  54  applies a deflection voltage to the corresponding blankers of the blanking plate  20  in such a manner that the blankers keep beams on during the irradiation time t. 
     At the same time, the control computer  52  outputs deflection position data to the deflection control circuit  56  such that each beam is deflected to a position (coordinates) indicated by the shot data. The deflection control circuit  56  computes the amount of deflection and applies a deflection voltage to the deflector  28 . Multiple beams to be shot at a time are thus deflected together. 
     A method for generating the writing data D 1  will now be described with reference to the flowchart of  FIG. 2 . First, the layout of a semiconductor integrated circuit is designed, and design data (CAD data) D 0  serving as layout data is generated and input to a converter  70  (step S 1 ). The design data D 0  is converted by the converter  70 , so that the writing data D 1  input to the control computer  52  of the writing apparatus  1  is generated. 
     The design data D 0  includes a figure with curve and straight-line sides. For a curve portion, the converter  70  calculates a plurality of control points for representing the curve (parametric curve representation) and determines the positions of the control points and curve type information (step S 2 ). For each of the control points, the converter  70  determines a displacement from an adjacent control point (step S 3 ). Also, the converter  70  extracts a straight-line portion and determines a displacement from one end to the other end of the straight line (step S 4 ). Then, along the entire contour of the figure starting at one vertex (figure placement origin), the converter  70  expresses the position of each control point as a displacement from the adjacent control point, and also expresses the position of a vertex at one end of the straight line as a displacement from the position of a vertex at the other end of the straight line. The converter  70  thus defines information about each side to generate the writing data D 1  (step S 5 ). 
       FIG. 3  illustrates an exemplary figure containing both curves and straight lines. This figure is enclosed by curves C 1  and C 2  and straight lines S 1  to S 11 . 
     In the example illustrated in  FIG. 3 , the curve C 1  is represented (or approximated) by a curve defined by four control points P 0 , P 1 , P 2 , and P 3 . Exemplary curve types that can be used here include a B-spline curve and a Bezier curve. The converter  70  calculates control points representing the curve portion of the figure, and expresses the position of each control point as a displacement from the adjacent control point to generate the writing data D 1 . 
     For example, in the example illustrated in  FIG. 3 , the coordinates (x0, y0) of the vertex (control point) P 0  are defined as the figure placement origin of this figure. 
     Of the control points for the curve C 1 , the control point P 1  follows the control point P 0  (or is next to the control point P 0 ). The position of the control point P 1  is defined by a displacement δx 1  in the x-direction and a displacement δy 1  in the y-direction, as viewed from the control point P 0 . 
     The position of the control point P 2  following the control point P 1  is defined by a displacement δx 2  in the x-direction and a displacement δy 2  in the y-direction, as viewed from the control point P 1 . 
     The position of the control point P 3  following the control point P 2  is defined by a displacement δx 3  in the x-direction and a displacement δy 3  in the y-direction, as viewed from the control point P 2 . In this manner, the positions of the control points for the curve portion are sequentially defined, each by a displacement in the x-direction and a displacement in the y-direction as viewed from the preceding control point. 
     The straight line S 1  connects to the curve C 1  at the vertex (control point) P 3 . The straight line S 1  connects the vertex P 3  to a vertex P 4 . The position of the vertex P 4  is defined by a displacement δx 4  in the x-direction and a displacement δy 4  in the y-direction, as viewed from the vertex P 3 . The converter  70  uses the positions of the vertex P 3  and the vertex P 4  and the information indicating that the vertex P 3  and the vertex P 4  are connected by a straight line to express the straight line S 1  and generate the writing data D 1 . 
     The straight line S 2  connects to the straight line S 1  at the vertex P 4 . The straight line S 2  connects the vertex P 4  to a vertex P 5 . The position of the vertex P 5  is defined by a displacement δx 5  in the x-direction and a displacement δy 5  in the y-direction, as viewed from the vertex P 4 . The converter  70  uses the positions of the vertex P 4  and the vertex P 5  and the information indicating that the vertex P 4  and the vertex P 5  are connected by a straight line to express the straight line S 2  and generate the writing data D 1 . 
     The straight line S 3  connects to the straight line S 2  at the vertex P 5 . The straight line S 3  connects the vertex P 5  to a vertex P 6 . The position of the vertex P 6  is defined by a displacement x 6  in the x-direction and a displacement δy 6  in the y-direction, as viewed from the vertex P 5 . The converter  70  uses the positions of the vertex P 5  and the vertex P 6  and the information indicating that the vertex P 5  and the vertex P 6  are connected by a straight line to express the straight line S 3  and generate the writing data D 1 . 
     The straight line S 4  connects to the straight line S 3  at the vertex P 6 . The straight line S 4  connects the vertex P 6  to a vertex P 7 . The position of the vertex P 7  is defined by a displacement δx 7  in the x-direction and a displacement δy 7  in the y-direction, as viewed from the vertex P 6 . The converter  70  uses the positions of the vertex P 6  and the vertex P 7  and the information indicating that the vertex P 6  and the vertex P 7  are connected by a straight line to express the straight line S 4  and generate the writing data D 1 . 
     The straight line S 5  connects to the straight line S 4  at the vertex P 7 . The straight line S 5  connects the vertex P 7  to a vertex P 8 . The position of the vertex P 8  is defined by a displacement δx 8  in the x-direction and a displacement δy 8  in the y-direction, as viewed from the vertex P 7 . The converter  70  uses the positions of the vertex P 7  and the vertex P 8  and the information indicating that the vertex P 7  and the vertex P 8  are connected by a straight line to express the straight line S 5  and generate the writing data D 1 . 
     The straight line S 6  connects to the straight line S 5  at the vertex P 8  at one end of the straight line S 6 . The other end of the straight line S 6  is connected to one end of the straight line S 7 , and the straight line S 6  and the straight line S 7  form a right angle. The position of a vertex P 9  at the other end of the straight line S 7  is defined by a displacement δx 9  in the x-direction and a displacement δy 9  in the y-direction, as viewed from the vertex P 8 . The converter  70  uses the positions of the vertex P 8  and the vertex P 9  and the information indicating that the vertex P 8  and the vertex P 9  are connected by straight lines of a right-angle type (Manhattan type) to express the straight lines S 6  and S 7  and generate the writing data D 1 . 
     The straight line S 8  connects to the straight line S 7  at the vertex P 9  at one end of the straight line S 8 . The other end of the straight line S 8  is connected to one end of the straight line S 9 , and the straight line S 8  and the straight line S 9  form a right angle. The position of a vertex P 10  at the other end of the straight line S 9  is defined by a displacement δx 10  in the x-direction and a displacement δy 10  in the y-direction, as viewed from the vertex P 9 . The converter  70  uses the positions of the vertex P 9  and the vertex P 10  and the information indicating that the vertex P 9  and the vertex P 10  are connected by straight lines of the right-angle type (Manhattan type) to express the straight lines S 8  and S 9  and generate the writing data D 1 . 
     The straight line S 10  connects to the straight line S 9  at the vertex P 10  at one end of the straight line S 10 . The other end of the straight line S 10  is connected to one end of the straight line S 11 , and the straight line S 10  and the straight line S 11  form a right angle. The position of a vertex P 11  at the other end of the straight line S 11  is defined by a displacement δx 11  in the x-direction and a displacement δy 11  in the y-direction, as viewed from the vertex P 10 . The converter  70  uses the positions of the vertex P 10  and the vertex P 11  and the information indicating that the vertex P 10  and the vertex P 11  are connected by straight lines of the right-angle type (Manhattan type) to express the straight lines S 10  and S 11  and generate the writing data D 1 . 
     The curve C 2  is represented (or approximated) by a curve connecting the vertices P 0  and P 11  and defined by five control points P 11 , P 12 , P 13 , P 14 , and P 0 . The position of the control point P 12  following the control point (vertex) P 11  is defined by a displacement δx 12  in the x-direction and a displacement δy 12  in the y-direction, as viewed from the control point P 11 . 
     The position of the control point P 13  following the control point P 12  is defined by a displacement δx 13  in the x-direction and a displacement δy 13  in the y-direction, as viewed from the control point P 12 . 
     The position of the control point P 14  following the control point P 13  is defined by a displacement δx 14  in the x-direction and a displacement δy 14  in the y-direction, as viewed from the control point P 13 . 
     The control point P 0  following the control point P 14  is the figure placement origin. 
       FIG. 4  illustrates an exemplary data structure of the writing data D 1  that defines a figure containing both curves and straight lines. The writing data D 1  includes a header and a body. The header defines a figure code (Code), the number of sections (N), and other information (other info). 
     The figure code is information indicating the type of a figure defined. For a figure containing both curves and straight lines, information indicating “mixed-side type” is defined as the figure code. 
     The converter  70  generates the writing data D 1 , with curve and straight-line portions separated in different sections. Also, the converter  70  groups continuous straight lines of an arbitrary-angle type (non-right-angle type) into one section. Similarly, the converter  70  groups continuous straight lines of the right-angle type into one section. 
     In the exemplary figure illustrated in  FIG. 3 , the positional information of the control points P 1  to P 3  for representing the curve C 1  is categorized into a first section. The positional information of the vertices P 4  to P 8  for representing the straight lines S 1  to S 5  of the arbitrary-angle type is categorized into a second section. The positional information of the vertices P 9  to P 11  for representing the straight lines S 6  to S 11  of the right-angle type is categorized into a third section. The positional information of the control points P 12  to P 14  for representing the curve C 2  is categorized into a fourth section. 
     As the other information (other info), the size (w and h) of the minimum rectangle (bounding box) enclosing the figure, such as that illustrated in  FIG. 5 , is defined. Such information of the bounding box facilitates determination of whether there is any overlap with other figures. Parameters for determining the parametric curve, such as a curve type, order, knot vector information, and end-point information, are also set. 
     In the body, the coordinates (x 0 , y 0 ) of the figure placement origin P 0  are first described. After the figure placement origin, information of each section is sequentially defined. 
     The number of points n, side type, byte length, and bounding box size are defined in a section header SH of each section. The number of points n indicates the number of control points or vertices included in the section. For example, the number of points n for the first section is three, and the number of points n for the second section is five. 
     The side type indicates the type of a side represented (i.e., curve, straight lines of arbitrary-angle type, or straight lines of right-angle type). The byte length indicates the data length of positional information (displacement information) of vertices or control points. The bounding box size indicates the size of a bounding box that encloses the side defined in this section. 
     In the first section, “curve type” is defined as the side type in the section header, and positional information (displacement information) of the control points P 1  to P 3  is defined following the section header. Specifically, as the positional information of the control point P 1 , the displacement δx 1  in the x-direction and the displacement δy 1  in the y-direction, as viewed from the figure placement origin (x 0 , y 0 ), are defined. As the positional information of the control point P 2 , the displacement δx 2  in the x-direction and the displacement δy 2  in the y-direction, as viewed from the control point P 1 , are defined. As the positional information of the control point P 3 , the displacement δx 3  in the x-direction and the displacement δy 3  in the y-direction, as viewed from the control point P 2 , are defined. 
     In the second section, “straight lines of arbitrary-angle type” is defined as the side type in the section header, and positional information of the vertices P 4  to P 8  is sequentially defined following the section header. The positional information of each vertex is a displacement in the x-direction and a displacement in the y-direction from the preceding vertex. 
     In the third section, “straight lines of right-angle type” is defined as the side type in the section header, and positional information of the vertices P 9  to P 11  is sequentially defined following the section header. The positional information of each vertex is a displacement in the x-direction and a displacement in the y-direction from the preceding vertex. 
     In the fourth section, “curve type” is defined as the side type in the section header, and positional information of the control points P 12  to P 14  is sequentially defined following the section header. The positional information of each control point is a displacement in the x-direction and a displacement in the y-direction from the preceding control point. 
     If an area enclosed by a curve is approximated to a polygon as in the case of using a conventional technique, the resulting increase in the number of vertices leads to a larger amount of writing data. 
     In the present embodiment, on the other hand, a curve portion of a figure is represented by a parametric curve using a plurality of control points. Since the number of control points used here is smaller than the number of vertices used in polygonal approximation of a curve, the amount of the writing data D 1  can be reduced. 
     The control computer  52  reads the writing data D 1  and reconstructs the figure. For example, from the coordinates (x 0 , y 0 ) in the writing data D 1 , the control computer  52  determines the position of the control point P 0  serving as the figure placement origin. 
     From the information defined in the first section, the control computer  52  sequentially calculates the positions of the control points P 1  to P 3  to determine the curve C 1 . 
     Next, from the information defined in the second section, the control computer  52  calculates the positions of the vertices P 4  to P 8  to determine the straight lines S 1  to S 5 . 
     Next, from the information defined in the third section, the control computer  52  calculates the positions of the vertices P 9  to P 11  to determine the straight lines S 6  to S 11  that connect the vertices with sides of the right-angle type. 
     Then, from the information defined in the fourth section, the control computer  52  calculates the positions of the control points P 12  to P 14  to determine the curve C 2  that connects the vertices P 0  and P 11 . The figure enclosed by the curves C 1  and C 2  and the straight lines S 1  to S 11  is thus reconstructed. 
     As described above, the writing data D 1  representing a figure containing both curves and straight lines can be easily processed within the control computer  52  of the writing apparatus  1 , and the amount of calculation can be reduced. With the writing apparatus  1  that supports a curve format, it is possible to deal with curves in an upstream data path, including optical proximity correction (OPC), and thus to reduce the turnaround time (TAT) even in an upstream process. 
     The embodiment has described an example in which curve and straight-line portions are separated into different sections and the side type is defined in each section header to generate the writing data D 1 . Alternatively, as illustrated in  FIG. 6 , a flag indicating the type of a side to which each vertex (or control point) belongs and a displacement from the preceding vertex (or control point) may be defined sequentially, along the contour of the figure starting at the figure placement origin. In this case, N in the header indicates the total number of vertices and control points. 
     For example, a flag  0  indicates Manhattan (or straight lines of the right-angle type), a flag  1  indicates straight lines of the arbitrary-angle type, and a flag  2  indicates curve. 
     The control points P 1  to P 3 , which are points for representing a curve, are assigned a flag of 2. The vertices P 4  to P 8 , which are points for representing straight lines of the arbitrary-angle type, are assigned a flag of 1. The vertices P 9  to P 11 , which are points for representing straight lines of the right-angle type, are assigned a flag of 0. The control points P 12  to P 14 , which are points for representing a curve, are assigned a flag of 2. 
     The writing data D 1  generated by the converter  70  according to the embodiment may be input to a pattern inspecting apparatus. For example, as illustrated in  FIG. 7 , the writing data D 1  (first writing data) generated by the converter  70  and writing data D 2  (second writing data) are input to a pattern inspecting apparatus  80 . The writing data D 2  is generated on the basis of a pattern actually written on a writing target substrate by the writing apparatus  1  illustrated in  FIG. 1  on the basis of the writing data D 1 . The writing data D 2  is input to the pattern inspecting apparatus  80  from a storage device (not shown) through a wired or wireless network. 
     On the basis of the writing data D 1  and D 2  received, the pattern inspecting apparatus  80  inspects a pattern actually written on the writing target substrate by the writing apparatus  1 . The inspection involves, for example, comparing the writing data D 1  and the writing data D 2 . Various types of other information, such as writing conditions, are also used in the inspection. 
     The writing data D 1  generated by the converter  70  is small in size and can be readily processed. This improves processing efficiency of the pattern inspecting apparatus  80 . 
     The converter  70  may be included in the pattern inspecting apparatus  80 . In this case, the pattern inspecting apparatus  80  includes a converting unit that generates the writing data D 1  on the basis of the design data D 0  input thereto, and an inspecting unit that compares the writing data D 1  and the writing data D 2  to inspect a pattern actually written on the writing target substrate. 
     Generation of the writing data D 1  according to the embodiment may be performed in the control computer  52  of the writing apparatus  1 . 
     At least part of the converter  70  for generating the writing data D 1  described in the above embodiments may be implemented in either hardware or software. When implemented in software, a program that realizes at least part of functions of the converter  70  may be stored on a recording medium such as a flexible disk or CD-ROM and read and executed by a computer. The recording medium is not limited to a removable recording medium such as a magnetic disk or optical disk, but may be a non-removable recording medium such as a hard disk device or memory. 
     The program that realizes at least part of the functions of the converter  70  may be distributed through a communication line (including wireless communications) such as the Internet. Further, the program may be encrypted, modulated, or compressed to be distributed through a wired line or wireless line such as the Internet or to be distributed by storing the program on a recording medium. 
     While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel methods and systems described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the methods and systems described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.