The present invention relates to a network device which is connectable to a network, and a method for controlling the network device.
Japanese Patent Publication No. 2004-145490A discloses a network device which uses a layout based on preset format setting information when outputting internal information, such as various settings, by way of a communication device such as a facsimile. This device enables alteration of the layout used for outputting the internal information by changing the format setting information.
However, the above-described communication device enables relatively easy alteration of the layout used at the time of output of internal information, but does not cope with customization of specifics of other processing. A conceivable technique for realizing customization of specifics of processing is a technique for setting parameters used for controlling specifics of processing by way of an exclusive screen. In this case, there is a tendency for limiting specifics of processing which can be customized, because of limitations imposed on the screen layout.
It is therefore an object of the invention to provide a network device and a method for controlling the same, in which customization of specifics of processing of the network device is facilitated in a flexible manner.
In order to achieve the above object, according to the invention, there is provided a network device adapted to be connected to a network, comprising:
a storage;
a document acquirer, operable to acquire a structured document in which a rule of processing executed by the network device is described by at least one first element defining at least one condition and at least one second element defining at least one content of the processing;
a document analyzer, operable to analyze the structured document to obtain an analysis result and to store the analysis result in the storage; and
an operation controller, operable to control an operation of the network device in accordance with the analysis result stored in the storage.
With this configuration, the operation of the network device is controlled so as to comply with the rule described in the structured document. Consequently, the user can readily customize specifics of processing of the network device by preparing a structured document in which a desired rule is described. Moreover, the rule is defined through use of the first element pertaining to the condition and the second element pertaining to the content of processing. In comparison with a case where a rule is set through use of an exclusive screen, specifics of processing can be customized more flexibly.
Preferably, the structured document is described with a markup language such as XML (eXtensible Markup Language).
Preferably, the first element and the second element are described with a tree structure; and the operation controller controls the operation so as to execute processing defined by one of the at least one second element which satisfies one of the at least one condition which is closer to a root of the tree structure.
Preferably, the operation controller controls the operation so as to execute the processing in accordance with an order defined by a description order in the structured document.
In these cases, complex conditions and/or processing order can be defined.
Preferably, the document acquirer acquires the structured document from a computer connected to the network.
In this case, the structure document can be shared among a plurality of network devices. Here, a timing that the document acquirer may be set arbitrary (e.g., the activation of the network device, two o'clock every day).
Preferably, the network device is configured to be operated in accordance with a command issued from a client terminal connected to the network; and the at least one condition includes a condition which is established when an identifier for the client terminal matches with a prescribed identifier. Here, it is preferable that the identifier is a network identifier.
In this case, the rule of processing can be defined through the use of the identifier of the client terminal. The identifier includes a computer name, an IP address, and a MAC (Media Access Control) address, a log-in username or the like.
Preferably, the at least one content of processing includes processing for disabling the operation such as error processing.
Preferably, the network device is a print server operable to cause at least one printer communicatively connected to the print server to execute printing of print data which is received from a client terminal connected to the network.
Here, it is preferable that the at least one content of processing includes processing for updating (addition, deletion, correction or the like) a code contained in the print data for controlling the at least one printer.
Preferably, the network device is an image scanner operable to scan an original to generate image data corresponding to the original.
Here, it is preferable that: the at least one condition includes a condition which is established when a prescribed character is recognized in a prescribed region in the original; and the at least one content of processing includes processing for storing the image data in a prescribed location in the network.
Preferably, the network device is a projector operable to project an image in accordance with a command issued from a client terminal connected to the network.
Here, it is preferable that the at least one content of processing includes processing for insert an identifier for the client terminal in a prescribed location of a background of the image. The identifier includes a computer name, an IP address, and a MAC address, a log-in username or the like.
According to the invention, there is also provided a method of controlling a network device provided with a storage and adapted to be connected to a network, comprising:
acquiring a structured document in which a rule of processing executed by the, network device is described by at least one first element defining at least one condition and at least one second element defining at least one content of the processing;
analyzing the structured document to obtain an analysis result and to store the analysis result in the storage; and
controlling an operation of the network device in accordance with the analysis result stored in the storage.
According to the invention, there is also provided a computer-readable medium containing a program causing a computer to execute the above method.
The above objects and advantages of the present invention will become more apparent by describing in detail preferred exemplary embodiments thereof with reference to the accompanying drawings, wherein:
Embodiments of the invention will be described below in detail with reference to the accompanying drawings.
The print server acts as an exclusive print server machine which spools the print data transmitted from a client terminal 50, or the like, onto the RAM 23, and then transfers the thus-spooled data to the printer 40. Firmware 30 used for controlling operation of the entire device, an XML (eXtensible Markup Language) parser 31 which analyzes an XML document, and the like, are stored in the ROM 22 of the print server 20. The LAN 35 is connected to a file server 60 serving as a general-purpose computer, and information stored in an unillustrated hard disk drive of the file server 60 can be shared by way of the LAN 35.
Operation of the thus-configured print server 20 will now be described. Particularly, operation performed at the time of customization of specifics of processing of the print server 20 will be described.
As illustrated, during the processing, a process rule setting file in which a process rule of the print server 20 is set is downloaded from the file server 60, and then executed (step S100). Here, information about a location where the process rule setting file is to be stored (e.g., the name of a computer, a folder name, a file name, or the like) is assumed to have been stored in the EEPROM 24 in advance.
The XML document has an XML declaration for describing the version of XML, and a DTD (Document Type Definition) used for describing rules of tags used in an XML document. However, they do not form the heart of the present invention, and hence their further detailed explanations are omitted.
The downloaded process rule setting file is analyzed through use of the XML parser 31, and the result of analysis is stored in the RAM 23 (steps S110, S120). Thus, processing is terminated. In the first embodiment, a DOM (Document Object Model) is adopted as an API (Application Program Interface) of the XML parser 31, and a result of analysis is assumed to be stored in the RAM 23 as a DOM tree.
Next, operation of the print server 20 based on the result of analysis of the process rule setting file will be described.
Of the child nodes of the element “process rule” (N0), which is a root element of the DOM tree shown in
When the conditional expression (DeviceSeg=ClientSeg) stands, an element “conditional processing” on the right of an attribute (N2) of the element “conditional processing” (N1) is referred to. As mentioned previously, the element “conditional processing” is an element defining a condition, and an attribute “UserName=“A, B, C, D” (N4) of the element becomes a conditional expression. Here, “UserName” is previously defined as a variable which shows a username to be described in the header section of print data.
When a conditional expression (UserName=“A, B, C, D”) stands, an element “print data” (N5) on the right of the attribute (N4) is referred to. Subsequently, the leftmost element “operation” (N6) of the child nodes of the element “print data” (N7) is referred to, and character string data “insertion” (N5), which is a child node of the element (N6), is referred to. Similarly, reference is sequentially made to the element “location” (N8), character string data “head” (N9), an element “data” (N10), and character string data @ESC“c” (N11). Here, the element “print data” is previously determined as an element which determines, with respect to the print data, processing specifics used for updating a print control code in accordance with the elements “operation,” “location,” and contents of “data” (character string data), which are child nodes. Therefore, there is performed processing for adding the printer control code @ESC“c” to the head of the print data. The printer control code @ESC“c” is previously set as a code for controlling the printer 40 such that print data are subjected to color printing. As mentioned above, described in the nodes from (N1) to (N11) is a process rule: [the printer control code @ESC“c” is added to the head of print data (print data are subjected to color printing) when the network address of the print server 20 coincides with the network address of the source of the print data and when the username described in the header section of the print data corresponds to any one of “A, B, C, D”].
When reference is made to the nodes (N1) to (N11), reference is then made to the element “conditional processing” (N12) on the right of the element “conditional processing” (N3). When the conditional expression (UserName≠“A, B, C, D”) which is an attribute (N13) stands, a reference is made to the element “print data” (N14) on the right of the attribute (N13). As in the case of the previously-described nodes (N6) to (N11), processing for adding a printer control code @ESC“m” to the head of the print data is performed by reference to nodes (N15) to (N20). The printer control code @ESC“m” is previously set as a code for controlling a printer 40 such that print data are subjected to monochrome printing. As mentioned above, described in the nodes (N1) and (N12) to (N20) is a process rule: [the printer control code @ESC“m” is added to the head of the print data (print data are subjected to monochrome printing) when the network address of the print server 20 coincides with the network address of the source of the print data and when the username described in the header of the print data does not correspond to any of “A, B, C, D”].
When reference is made to nodes (N12) to (N20) in the manner mentioned above, reference is then made to “conditional processing” (N21) on the right of the element “conditional processing” (N1). When the conditional expression (DeviceSeg≠ClientSeg), which is an attribute (N22), stands, reference is made to an element “error” (N23) on the right of the attribute (N22), and reference is then made to character string data “e001” (N24), which is a child node. Here, the element “error” is previously set as an element used for determining error processing through which contents (character string data) are determined as an error code. Consequently, error processing of the error code “e001” is performed. As mentioned above, described in nodes (N21) to (N24) is a process rule: [error processing of the error code “e001” is performed when the network address of the print server 20 differs from the network address of the source of the print data].
As mentioned above, the print data are spooled onto the RAM 23 by sequentially retrieving, in a prioritized manner, child nodes on the left side in relation to the root element of the read DOM tree; and executing processing specifics corresponding to the attribute and details (character string data) of the referred nodes.
The thus-described print server 20 of the first embodiment downloads, from the file server 60, a process rule setting file in which a process rule is described through use of XML, and analyzes the thus-downloaded file. Further, the print server stores a result of analysis (DOM tree) in the RAM 23, and can perform spool processing on the basis of the thus-stored analysis result. Specifically, since spool processing is carried out in compliance with the process rule described in the process rule setting file, the user can readily customize specifics of processing of the print server 20 by keeping, in the file server 60, the process rule setting file in which a desired process rule is described. A process rule is set in the process rule setting file by describing an element whose condition is determined (element “conditional processing”) and an element (element “print data,” “error,” or the like) whose processing specifics are determined. In comparison with a case where a process rule is set through use of an exclusive screen, complicate conditions or procedures for carrying out processing specifics can be set. Namely, processing specifics can be customized more flexibly.
In the print server 20 of the first embodiment, the process rule setting file is taken as an XML document described through use of XML. However, the essential requirement is to set a process rule through use of the element for setting a condition and an element for determining processing specifics. Another language may also be used.
In the print server 20 of the first embodiment, the process rule setting file is downloaded from the file server 60. However, the essential requirement is to be able to acquire a process rule setting file, and there is no necessity for downloading the process rule setting file from a computer, such as the file server 60, connected to the LAN 35. Although the result of analysis of a process rule setting file is stored in the RAM 23, any location may be employed for storage. For instance, the analysis result may be stored in the EEPROM 24. Moreover, the process rule setting file may be stored in the RAM 23 or the EEPROM 24. When print data are subjected to receipt processing, the process rule setting file may be analyzed and used.
Although the print server 20 of the first embodiment stores the result of analysis of the process rule setting file in the form of a DOM tree, the result may be stored in a format other than the DOM tree, so long as the firmware 30 of the print server 20 can interpret the process rule.
Although the print server 20 of the first embodiment is described as performing processing based on the result of analysis of the process rule setting file through the spool processing for spooling print data on the RAM 23, processing based on the result of analysis of the process rule setting file may also be performed when processing other than spool processing is performed, so long as processing pertains to the print server 20.
Although the print server 20 of the first embodiment illustrates, as conditions for a process rule, conditions under which the network address of the source and the network address of the print server 20 coincide with each other and conditions under which the network addresses differ from each other, network identification information (e.g., a domain name or the like) other than the network address may be used. Although conditions under which the username described in the header section of the print data correspond to any one of “A, B, C, D” and conditions under which the username does not correspond to any of “A, B, C, D” are illustrated, identification information (e.g., the name of a computer or an IP address) pertaining to the client terminal 50 other than the username may be used. As a matter of course, various other conditions may be used as conditions for the process rule.
Although in connection with the print server 20, processing for updating a printer control code for print data and error processing have been illustrated, it goes without saying that specifics of processing of another type may be used.
In connection with the print server 20 of the first embodiment, the process rule setting file shown in
In the first embodiment, the network device of the present invention, which operates on the basis of the result of analysis of the process rule setting file, has been described as the print server 20. However, the present invention may be taken as a mode of a method for controlling such a network device.
Operation of the thus-configured image scanner 120 will now be described. Particularly, operation performed at the time of customization of specifics of processing of the image scanner 120 will be described. As in the case of the print server 20 of the first embodiment, the image scanner 120 of the second embodiment performs, at a predetermined timing, the process rule setting file receipt processing illustrated in
Next, operation of the image scanner 120 based on the result of analysis of the process rule setting file will be described.
Of the child nodes of the element “process rule” (N100), which is a root element of the DOM tree shown in
Reference is made to “conditional processing” (N103) on the right of the element “data transfer destination” (N101). The element “conditional processing” is an element defining conditions for a process rule, and an attribute of the element is determined as a conditional expression in advance. Here, an attribute “HeadOCR=Estimate” (N104) of the element “conditional processing” (N103) becomes a conditional expression. Here, “HeadOCR” is determined in advance as a variable which can be used in the process rule, and shows a character string which is distinguished from the image data obtained by tentatively scanning a predetermined header region of the document.
When a conditional expression (HeadOCR=“Estimate”) stands, reference is made to an element “data transfer destination” (N105) on the right of the attribute (N104). As mentioned previously, the element “data transfer destination” is an element which defines processing for setting specifies of the element as a destination of image data. Here, the character string data ¥¥ServerA¥Estimate¥ (N106) is set as a transfer destination of image data.
Reference is made to an element “conditional processing” (N107) on the right of the element “conditional processing” (N103). When the conditional expression (HeadOCR=“Invoice”), which is an attribute (N108), stands, reference is made to an element “data transfer destination” (N109) on the right of the attribute (N108). Character string data ¥¥ServerA¥Invoice¥ (N110), which are specifics of the element “data transfer destination,” are set as a transfer destination of the image data. As mentioned above, at nodes (N100) to (N110), there is described a process rule, by which: the “data transfer destination” is set in ¥¥ServerA¥Others¥; when an “estimate” is identified in the image data pertaining to the header region of the document, the data transfer destination is set (changed) to ¥¥ServerA¥Estimate¥; and, when the “invoice” is identified in the image data pertaining to the header region of the document, the data transfer destination is set (changed) to ¥¥ServerA¥Invoice¥.
As mentioned above, child nodes on the left side in relation to the root element of the read DOM tree are sequentially retrieved, in a prioritized manner, and processing is performed in accordance with the element (the element “data transfer destination”) whose processing specifics are set. The set document is scanned to thus acquire image data, and the thus-acquired image data are stored in the set data transfer destination.
The image scanner 120 of the thus-described second embodiment downloads, from the file server 160, a process rule setting file in which a process rule is described through use of XML, and the thus-downloaded file is analyzed. Further, a result of analysis (DOM tree) is stored in the RAM 123, and server scanning can be performed on the basis of the thus-stored analysis result. Specifically, since server scanning is carried out in compliance with the process rule described in the process rule setting file, the user can readily customize specifics of processing of the image scanner 120 by keeping, in the file server 160, the process rule setting file in which a desired process rule is described. A process rule is set in the process rule setting file by describing an element whose condition is determined (element “conditional processing”) and an element (element “data transfer destinations” or the like) whose processing specifics are determined. In comparison with a case where a process rule is set through use of an exclusive screen, complicated conditions or procedures for carrying out processing specifics can be set. Namely, processing specifics can be customized more flexibly.
In the image scanner 120 of the second embodiment, the process rule setting file is taken as an XML document described through use of XML. However, the essential requirement is to set a process rule through use of the element for setting a condition and an element for determining processing specifics. Another language may also be used.
In the image scanner 120 of the second embodiment, the process rule setting file is downloaded from the file server 160. However, the essential requirement is to be able to acquire a process rule setting file, and there is no necessity for downloading the process rule setting file from a computer, such as the file server 160, connected to the LAN 135. Although the result of analysis of a process rule setting file is stored in the RAM 123, any location may be employed for storage. For instance, the analysis result may be stored in the EEPOM 124. Moreover, the process rule setting file may be stored in the RAM 123 or the EEPOM 124. When server scanning is carried out, the process rule setting file may be analyzed and used.
The image scanner 120 of the second embodiment stores the result of analysis of the process rule setting file as a DOM tree. The essential requirement is to interpret a process rule by the firmware 130 of the image scanner 120. Therefore, the result analysis may be stored in a format other than the DOM tree.
The image scanner 120 of the second embodiment is described to perform processing based on the result of analysis of the process rule setting file through server scanning for storing the image data acquired through scanning into a predetermined storage destination. However, the essential requirement is that processing belongs to the image scanner 120. When processing other than server scanning is performed, processing based on the result of analysis of the process rule setting file may be performed.
Although, in connection with the image scanner 120 of the second embodiment, conditions under which an “estimate” and an “invoice” are identified in the image data pertaining to the header region of the document are illustrated, it goes without saying that specifics of processing of another type may be used as conditions for the process rule.
In connection with the image scanner 120 of the second embodiment, processing for setting a transfer destination of image data is illustrated. As a matter of course, various other types of processing may be used as processing for a process rule.
In connection with the image scanner 120 of the second embodiment, the process rule setting file shown in
In the second embodiment, the network device of the present invention, which operates on the basis of the result of analysis of the process rule setting file, has been described as the image scanner 120. However, the present invention may be taken as a mode of a method for controlling such a network device.
Operation of the thus-configured projector 220 will now be described. Particularly, operation performed at the time of customization of specifics of processing of the projector 220 will be described. As in the case of the print server 20 of the first embodiment and the image scanner 120 of the second embodiment, the projector 220 of the third embodiment performs, at a predetermined timing, the process rule setting file receipt processing illustrated in
Next, operation of the projector 220 based on the result of analysis of the process rule setting file will be described.
Of the child nodes of the element “process rule” (N200), which is a root element of the DOM tree shown in
When a conditional expression (DeviceSeg=ClientSeg) stands, reference is made to an element “background data” (N204) on the right of the attribute (N202). Of the child nodes of the element “background data” (N204), reference is made to the leftmost element “operation” (N205), and reference is made to character string “insertion” (N206) which is a child node of the element “operation.” Similarly, reference is sequentially made to an element “location” (N207), a character string data “lower right” (N208), an element “data” (N209), and character string data “@logon-username” (N210). The element “background data” is determined in advance as an element used for determining processing for updating background data pertaining to an image to be reproduced in accordance with specifics (character string data) of the elements “operation,” “location,” and “data,” all of which are child nodes. Here, processing for adding “@logon-username” to a lower right position in the background data is performed. “@logon-username” is determined in advance as a variable which can be used in the process rule, and shows the logon-username of the source of the image reproduction command.
When reference is made to the element “conditional processing” (N211) on the right of the element “conditional processing” (N201) and when the conditional expression (DeviceSeg≠ClientSeg) which is an attribute (N212), stands, reference is made to the element “error” (N213) on the right of the attribute (N212), and reference is then made to the character string data “e001” (N214) which are a child node.
Here, the element “error” is previously set as an element used for determining error processing through which contents of the element (character string data) are determined as an error code. Consequently, error processing of the error code “e001” is performed. As mentioned above, a process rule is described in nodes (N200) to (N214), wherein “the logon-username of the source of image reproduction command is added to a lower right position in the background data when the network address of the projector 220 and the network address of the source of the image reproduction command coincide with each other, and error processing of the error code “e001” is performed when the network address of the projector 220 and the network address of the source of the image reproduction command differ from each other.
As mentioned above, child nodes on the left side in relation to the root element of the read DOM tree are sequentially retrieved, in a prioritized manner, and processing is performed in accordance with specifics of an element (element “conditional processing”) whose conditions are determined and specifics of elements (elements “background data” and “error”) whose processing specifics are determined, thereby reproducing a specified image.
The projector 220 of the third embodiment downloads, from the file server 260, a process rule setting file in which a process rule is described through use of an XML, and analyzes the thus downloaded file. Further, the projector stores a result of analysis (DOM tree) in the RAM 223, and can perform image reproduction processing on the basis of the thus-stored analysis result. Specifically, since image reproduction processing is carried out in compliance with the process rule described in the process rule setting file, the user can readily customize specifics of processing of the projector 220 by keeping, in the file server 260, the process rule setting file in which a desired process rule is described. In the process rule setting file, the element (the element “conditional processing”) whose conditions are set and an element (the element “background data”) whose processing specifics are set are described by use of a hierarchical structure (a tree structure). Hence, in comparison with a case where the process rule is set through use of an exclusive screen, setting of complicate conditions or setting of procedures for carrying out processing can be performed. Specifically, processing specifics can be customized more flexibly.
In the projector 220 of the third embodiment, the process rule setting file is taken as an XML document described through use of XML. However, the essential requirement is to set a process rule through use of the element for setting a condition and an element for determining processing specifics. Another language may also be used.
In the projector 220 of the third embodiment, the process rule setting file is downloaded from the file server 260. However, the essential requirement is to be able to acquire a process rule setting file, and there is no necessity for downloading the process rule setting file from a computer, such as the file server 260, connected to the LAN 235. Although the result of analysis of a process rule setting file is stored in the RAM 223, any location may be employed for storage. For instance, the analysis result may be stored in the EEPOM 224. Moreover, the process rule setting file may be stored in the RAM 223 or the EEPOM 224. When image reproduction processing is carried out, the process rule setting file may be analyzed and used.
The projector 220 of the third embodiment stores the result of analysis of the process rule setting file as a DOM tree. The essential requirement is to interpret a process rule by the firmware 230 of the projector 220. Therefore, the result analysis may be stored in a format other than the DOM tree.
The projector 220 of the second embodiment is described to perform processing based on the result of analysis of the process rule setting file through server scanning for storing into a predetermined storage destination the image data acquired through scanning. However, the essential requirement is that processing pertains to the projector 220. When processing other than server scanning is performed, processing based on the result of analysis of the process rule setting file may be performed.
The projector 220 of the third embodiment is illustrated under conditions of the network address of the command source and the network address of the projector 220 coinciding with each other and conditions of the network addresses differing from each other. However, network identification information (e.g., a domain name) other than the network addresses may be used. As a matter of course, various other conditions may be used as conditions for the process rule.
In connection with the projector 220 of the third embodiment, processing for updating background data of an image to be reproduced and error processing are illustrated as processing of the process rule. However, as a matter of course, various other types of processing may be used.
In connection with the projector 220 of the third embodiment, the process rule setting file shown in
In the third embodiment, the network device of the present invention, which operate on the basis of the result of analysis of the process rule setting file, has been described as the projector 220. However, the present invention may be taken as a mode of a method for controlling such a network device.
Although the present invention has been shown and described with reference to specific preferred embodiments, various changes and modifications will be apparent to those skilled in the art from the teachings herein. Such changes and modifications as are obvious are deemed to come within the spirit, scope and contemplation of the invention as defined in the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
P2004-234489 | Aug 2004 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
5917931 | Kunkler | Jun 1999 | A |
6540142 | Alleshouse | Apr 2003 | B1 |
6643665 | Kimbell et al. | Nov 2003 | B2 |
6655593 | Alleshouse | Dec 2003 | B2 |
6704120 | Leone, III et al. | Mar 2004 | B1 |
7287018 | Lennon | Oct 2007 | B2 |
7321435 | Cherry et al. | Jan 2008 | B2 |
7509305 | Tozawa et al. | Mar 2009 | B2 |
7526504 | Sedky et al. | Apr 2009 | B2 |
20020007367 | Narahara | Jan 2002 | A1 |
20020111963 | Gebert et al. | Aug 2002 | A1 |
20020161801 | Hind et al. | Oct 2002 | A1 |
20020161831 | Nakaoka et al. | Oct 2002 | A1 |
20030107761 | Kimura | Jun 2003 | A1 |
20030140809 | Krautter | Jul 2003 | A1 |
20030202199 | Carter et al. | Oct 2003 | A1 |
20040049738 | Thompson et al. | Mar 2004 | A1 |
20040128555 | Saitoh et al. | Jul 2004 | A1 |
20040167749 | Friedman et al. | Aug 2004 | A1 |
20050030580 | Moroi | Feb 2005 | A1 |
20050094182 | Reese et al. | May 2005 | A1 |
20050134896 | Koga | Jun 2005 | A1 |
20060155725 | Foster et al. | Jul 2006 | A1 |
20070005736 | Hansen et al. | Jan 2007 | A1 |
Number | Date | Country |
---|---|---|
11-203226 | Jul 1999 | JP |
2002-312208 | Oct 2002 | JP |
2004-126933 | Apr 2004 | JP |
2004-145490 | May 2004 | JP |
2004-166241 | Jun 2004 | JP |
Number | Date | Country | |
---|---|---|---|
20060033954 A1 | Feb 2006 | US |