Page 28 of 43 FirstFirst ... 3181920212223242526272829303132333435363738 ... LastLast
Results 676 to 700 of 1052

Thread: NCS Dummy - Taking the expert out of NCS Expert

  1. #676
    Join Date
    Nov 2007
    Location
    Belgium
    Posts
    2,484
    My Cars
    Made in Germany
    gww50: See this post.

  2. #677
    Join Date
    Jan 2009
    Location
    Los Gatos, Ca
    Posts
    4
    My Cars
    330, X6
    Hi,
    I have NCS dummy version 0.6.0.4, windows 7 on Mac parallels and I tried to follow your instructions for adding a new parameter,

    starting from NCS Dummy version 0.6.0.0 it is possible to add new parameters from within the graphical trace editor and update the NCS Expert DATEN files. To do so, right-click on a function or function parameter and choose "Add Parameter" from the popup menu.


    When I right click I only see "copy keyword name" , what am I doing wrong ?

    Thanks

  3. #678
    Join Date
    Jun 2014
    Location
    Portugal
    Posts
    13
    My Cars
    2008 MINI COOPER D
    Trace file must not be loaded.

  4. #679
    Join Date
    Nov 2007
    Location
    Belgium
    Posts
    2,484
    My Cars
    Made in Germany
    dmlgc: clawpt is right. You may not have a trace file loaded if you want to add parameters to modules.

    The NCS Dummy graphical trace editor has three main modes of operation:

    • Chassis and module selected: Module Functions - View and modify the module's coding features
    • Chassis, module and trace file selected: Trace Functions - View and modify the trace file
    • Chassis, module and 2 trace files selected: Trace Differences - Compare differences between two trace files

  5. #680
    Join Date
    Jan 2009
    Location
    Los Gatos, Ca
    Posts
    4
    My Cars
    330, X6
    Quote Originally Posted by revtor View Post
    dmlgc: clawpt is right. You may not have a trace file loaded if you want to add parameters to modules.

    The NCS Dummy graphical trace editor has three main modes of operation:

    • Chassis and module selected: Module Functions - View and modify the module's coding features
    • Chassis, module and trace file selected: Trace Functions - View and modify the trace file
    • Chassis, module and 2 trace files selected: Trace Differences - Compare differences between two trace files
    OK here is what I have I think it is everything you mentioned, if not tell me what else to add.
    Thanks
    Attached Images Attached Images

  6. #681
    Join Date
    Nov 2007
    Location
    Belgium
    Posts
    2,484
    My Cars
    Made in Germany
    dmlgc: Your screenshot clearly shows a loaded trace file, so NCS Dummy is in Trace Functions mode where you can only manipulate the trace file - not the module. If you want to modify the module (like adding parameters), you should not have a trace file loaded. Just clear the "FSW/PSW or Nettodata trace 1" field to switch to Module Functions mode...

  7. #682
    Join Date
    Jan 2014
    Location
    Tampere, Finland
    Posts
    10
    My Cars
    F11, E36/7
    Hi revtor. Could you add a new function to NCS Dummy? It is about comparing trace files. When combox is installed to E60, CIC must be coded with both E60 and E90 FA, then comparison must be made between these two trace files and E90 combox related options must be entered to E60 trc. Your tool makes great work on comparing, would it be possible to add function where you can choose which one of these two trace options for every parameter is selected? Then you could select correct options for each differing parameter and finally output fsw_psw.man. First trc would be the base for this .man file.

    Thanks.

  8. #683
    Join Date
    Jan 2009
    Location
    Los Gatos, Ca
    Posts
    4
    My Cars
    330, X6
    Thank You , I'm noob and I am stilling fumbling my way around.
    I appreciate the help.

  9. #684
    Join Date
    Jul 2013
    Location
    LA
    Posts
    6
    My Cars
    BMW
    Hello, revtor! How about adding "whole word" mode in Order Option search? I think it's easy to add, but will be very useful feature.

  10. #685
    Join Date
    Jan 2015
    Location
    waterloo
    Posts
    6
    My Cars
    e92
    Can the dat2txt program be downloaded from anywhere any longer? The original link is dead.

  11. #686
    Join Date
    Feb 2013
    Location
    san antonio
    Posts
    12
    My Cars
    2011 335i coupe
    Revtor,

    I am trying to manually increase one data value
    Attached Images Attached Images
    Last edited by vnt; 09-17-2015 at 10:47 AM. Reason: blah

  12. #687
    Join Date
    May 2006
    Location
    The Netherlands
    Posts
    16,716
    My Cars
    DE-spec E36 328i/M3 cab
    Quote Originally Posted by vnt View Post
    Revtor,

    I am trying to manually increase one data value
    Have you loaded the PSW_MAN file? Then you can change 00 into 01 without a problem.
    1998 BMW M3 3.2 Cabrio • Alpinweiß III on Schwarz • German spec • 1 of 12
    SMG • SRA • PDC • AUC • OBC • GSM • HK • UURS • IHKA • FGR • MFL

    IG:
    https://www.instagram.com/iflok/



  13. #688
    Join Date
    Apr 2012
    Location
    kiel
    Posts
    97
    My Cars
    323ci e46
    can someone tell me to fix my problem?

    i have a auxulary heater from a e38.. the car has zcs not fa/vo

    i will change a parameter in the ecu from the heater that he works without kbus.

    if i connect the heater with kbus pkus and gnd to my car correct ncs cant find the heater!

    my car is a e46 with fa/vo!

    what must i do to code the ecu from my car? does it works with a ssd file?

  14. #689
    Join Date
    Apr 2009
    Location
    Vancouver Isl, BC, Canada
    Posts
    4,173
    My Cars
    98 Euro M3, 04 M3, 06 M5
    Quote Originally Posted by hoer173 View Post
    can someone tell me to fix my problem?

    i have a auxulary heater from a e38.. the car has zcs not fa/vo

    i will change a parameter in the ecu from the heater that he works without kbus.

    if i connect the heater with kbus pkus and gnd to my car correct ncs cant find the heater!

    my car is a e46 with fa/vo!

    what must i do to code the ecu from my car? does it works with a ssd file?
    The heater very likely communicates using the ADS protocols, and would need to be connected to an ADS interface to communicate with it.

    I assume you are attempting to connect to it as if it was in an E38?(selecting E38 rather then E46?)
    Last edited by legoman67; 10-15-2015 at 12:26 PM.
    Current:

    - 09 335i MSport, FBO.
    - 98 Euro M3, Estoril Blue
    - 04 M3, Carbon Black, 6 Speed Coupe
    - 06 M5, Black on Black, Full Leather.
    - 73 3.0CS, Tagia Green, 5 speed M30b35 converted

    Ex's: 1984 325e, 1988 325IX, 1992 525I, 1995 540i/6, 2002 330i, 2005 330xi, 1992 850i, 2003 330i #1, 2003 330i #2, 2002 330ci, 2004 330ci, 2007 328CI, 2007 335i, 2001 M3, 2006 M5 6 speed

  15. #690
    Join Date
    Apr 2012
    Location
    kiel
    Posts
    97
    My Cars
    323ci e46
    i have an ads interface!

    must i connect direct with ads ? 12v and gnd and k line.. but ncs need a car or not?

    can you give me a walktrough?

    do i need a ssd file

  16. #691
    Join Date
    Apr 2012
    Location
    kiel
    Posts
    97
    My Cars
    323ci e46
    my process :

    the heater is from a e38 with zcs!(central coding key)
    my car is a e46 with VO!

    heater is build in in the car..
    heater becomes ground and 12v+
    k line from heater is connected to the kbus connector where all ecus connected.

    TO MY VO i cant put aux. heater! thats only work in e46 with zcs! (central coding key)

    with inpa i cant connect to the heater! i try as e38 e39 e46... it doesnt work!

    i think the problem is the gateway! the instrument cluster speaks with the diagnostic connector (obd)... and the cluster speaks with the ecus!

    i try then another idea...
    i go to an friend.. connect of the same way the heater... then it works i can code with ncs!

    his car is a 98 e39...

    my way is to code the heater from my e46 or without car.

    what i code is to change the value that let the heater starts over kbus signal or 12v on signal.

    my heater works now with a clock or a cellphone modul.

    but i want to code him without another car!

    i think when i bought a old e39 cluster.. i can do it... but i need a way to code solo..

    please help

  17. #692
    Join Date
    Apr 2013
    Location
    virginia
    Posts
    28
    My Cars
    2007 bmw 335i
    Hi revtor,I'm new to coding and just got BMWtools installed including NCSEXPERT v.01 and NCSdummy 0.6.0.4. I loaded up expert, brought up my vin and loaded dummy. Everything looked fine at first. I loaded the chassis and module in dummy. The MK60_87.C03 dsc module showed parameters. I loaded the FSW/PSW trace file but the screen never showed check boxes to enable changes. I als don't get a trace editor button at the top of screen. Please tell me what I'm may be doing wrong.


    Also, i notice even when not plugged into the car i can pull up modules and view parameters for any module. Is this normal? if so, im not really sure if i was really reading my live module or data that is already stored in dummy. See screen print below.


    [ ] 15:32:31 NCS Dummy 0.6.0.4 launched.
    [ ] 15:32:31 Loaded 14823 translations by revtor, IcemanBHE, joako, lolo, rdl, StefanL, rondo and LPCapital.
    [ ] 15:32:31 Loaded NCS Expert DATEN folder "C:\NCSEXPER\DATEN" with 1 chassis.
    [ ] 15:32:35 Loaded chassis "E89" (E81, E82, E84, E87, E88, E89, E90, E91, E92 and E93) with 397 modules.
    [ ] 15:33:40 Loaded module "MK60_87.C03" with 19 functions and 12 unoccupied blocks.
    [E] 15:34:14 An error occurred while reading "C:\NCSEXPER\WORK\FSW_PSW.TRC": Unresolved function keyword "SZL". Make sure chassis and module match those of the trace file.
    Thank you.


  18. #693
    Join Date
    Apr 2013
    Location
    virginia
    Posts
    28
    My Cars
    2007 bmw 335i
    Hi revtor,I'm new to coding and just got BMWtools installed including NCSEXPERT v.01 and NCSdummy 0.6.0.4. I loaded up expert, brought up my vin and loaded dummy. Everything looked fine at first. I loaded the chassis and module in dummy. The MK60_87.C03 dsc module showed parameters. I loaded the FSW/PSW trace file but the screen never showed check boxes to enable changes. I als don't get a trace editor button at the top of screen. Please tell me what I'm may be doing wrong.


    Also, i notice even when not plugged into the car i can pull up modules and view parameters for any module. Is this normal? if so, im not really sure if i was really reading my live module or data that is already stored in dummy. See screen print below.


    [ ] 15:32:31 NCS Dummy 0.6.0.4 launched.
    [ ] 15:32:31 Loaded 14823 translations by revtor, IcemanBHE, joako, lolo, rdl, StefanL, rondo and LPCapital.
    [ ] 15:32:31 Loaded NCS Expert DATEN folder "C:\NCSEXPER\DATEN" with 1 chassis.
    [ ] 15:32:35 Loaded chassis "E89" (E81, E82, E84, E87, E88, E89, E90, E91, E92 and E93) with 397 modules.
    [ ] 15:33:40 Loaded module "MK60_87.C03" with 19 functions and 12 unoccupied blocks.
    [E] 15:34:14 An error occurred while reading "C:\NCSEXPER\WORK\FSW_PSW.TRC": Unresolved function keyword "SZL". Make sure chassis and module match those of the trace file.
    Thank you.

  19. #694
    Join Date
    Jul 2013
    Location
    LA
    Posts
    6
    My Cars
    BMW
    Hello, revtor!

    I'm trying to modify xxAT.K00 file, disassemble it and add some stuff. But looks like there is a mistake in assembling function. Here is a disassembled line of E60AT.K00:

    Code:
    ZEIT : "0310" {} (0069,00F5,00DC,0122,0136,0120,0144,014F,0199,0214,019A,01AE,01D4,026F,0281,02BB,0280,02A1) // not important stuff
    There are 18 (12h) ASW ids. And here is binary data of this line in original E60AT.K00:

    Code:
    2C 0300 3033313000 00 1200 6900F500DC0022013601200144014F01990114029A01AE01D4016F028102BB028002A102 58
    2C = 1-byte length of block,
    0300 = is a type of block (ZEIT),
    3033313000 = name as C-string ("0310" in this place)
    00 = amount of "AUFTRAGSAUSDRUCK" ids, 1-byte
    1200 = amount of ASW ids, 2-byte, Little-Endian = 18 items

    ...ASWs...
    58 = don't know, maybe it's a checksum of a whole block

    And here is a compiled with Dummy E60AT.K00:

    Code:
    2D 0300 3033313000 0000 1200 6900F500DC0022013601200144014F01990114029A01AE01D4016F028102BB028002A102 59
    Another line comparison:

    Code:
    080200303130330000000008 // original
    09020030313033000000000009 // generated
    
    
    0A0200303930330000010069006A  // original
    0B020030393033000000010069006B // generated
    
    
    0C020031323033000002006900F50090  // original
    0D02003132303300000002006900F50091 // generated
    Looks like you are writing 2-byte amount of AUFTRAGSAUSDRUCK ids instead of 1. NCS Expert don't want to work with this file. Confirmed for ZEIT and ZEITALT. Currently looking for another mistakes.

    Also I have a question: how to calculate a new checksum at the end of file (CHECKSUM)?

    - - - Updated - - -

    For KUNDENDIENST and BESTELLUNG lines there are 2 extra bytes:

    Code:
    09 0600 3231544900 00 00 0000 11 // original
    0B 0600 3231544900 0000 0000 0000 13 // generated
    
    08 0700 31303000 00 00 0000 3E // original
    0A 0700 31303000 0000 0000 0000 3C // generated
    Two 16-bit counters instead of 8-bit.
    Last edited by flashdaemon; 10-23-2015 at 01:22 PM.

  20. #695
    Join Date
    Nov 2007
    Location
    Belgium
    Posts
    2,484
    My Cars
    Made in Germany
    Quote Originally Posted by ap90500 View Post
    Your tool makes great work on comparing, would it be possible to add function where you can choose which one of these two trace options for every parameter is selected? Then you could select correct options for each differing parameter and finally output fsw_psw.man. First trc would be the base for this .man file.
    I've experimented with this but I'm running into limitations of the control I use for the graphical trace editor and the way data is stored in Trace Differences. I do like the idea and I might take another look at it later, but don't expect this functionality any time soon. Sorry.

    Quote Originally Posted by flashdaemon View Post
    Hello, revtor! How about adding "whole word" mode in Order Option search? I think it's easy to add, but will be very useful feature.
    Consider it done. This feature will be in the next release. Thanks for the suggestion!

    Quote Originally Posted by brakthru View Post
    I loaded the chassis and module in dummy. The MK60_87.C03 dsc module showed parameters. I loaded the FSW/PSW trace file but the screen never showed check boxes to enable changes. I als don't get a trace editor button at the top of screen. Please tell me what I'm may be doing wrong.

    [E] 15:34:14 An error occurred while reading "C:\NCSEXPER\WORK\FSW_PSW.TRC": Unresolved function keyword "SZL". Make sure chassis and module match those of the trace file.
    Already answerd by mail, but by far the most common cause for ending up with that error message is not following the instructions to read trace files (chapter 6.1 in the NCS Dummy user manual).

    Quote Originally Posted by flashdaemon View Post
    I'm trying to modify xxAT.K00 file, disassemble it and add some stuff. But looks like there is a mistake in assembling function. Here is a disassembled line of E60AT.K00:

    Code:
    ZEIT : "0310" {} (0069,00F5,00DC,0122,0136,0120,0144,014F,0199,0214,019A,01AE,01D4,026F,0281,02BB,0280,02A1) // not important stuff
    There are 18 (12h) ASW ids. And here is binary data of this line in original E60AT.K00:

    Code:
    2C 0300 3033313000 00 1200 6900F500DC0022013601200144014F01990114029A01AE01D4016F028102BB028002A102 58
    2C = 1-byte length of block,
    0300 = is a type of block (ZEIT),
    3033313000 = name as C-string ("0310" in this place)
    00 = amount of "AUFTRAGSAUSDRUCK" ids, 1-byte
    1200 = amount of ASW ids, 2-byte, Little-Endian = 18 items

    ...ASWs...
    58 = don't know, maybe it's a checksum of a whole block

    And here is a compiled with Dummy E60AT.K00:

    Code:
    2D 0300 3033313000 0000 1200 6900F500DC0022013601200144014F01990114029A01AE01D4016F028102BB028002A102 59
    Looks like you are writing 2-byte amount of AUFTRAGSAUSDRUCK ids instead of 1. NCS Expert don't want to work with this file. Confirmed for ZEIT and ZEITALT. Currently looking for another mistakes.
    You are absolutely right! I have mistakenly assigned the wrong data type to fields "DATUM" and "AUFTRAGSAUSDRUCK" in blocks "BESTELLUNG", "KUNDENDIENST", "ZEIT" and "ZEITALT". I had a quick glance over all fields but it seems those were the only wrong ones. It is fixed in the upcoming release. Thanks for reporting this bug!

    Also I have a question: how to calculate a new checksum at the end of file (CHECKSUM)?
    I'm really sorry but I don't know yet. It is almost certainly a simple XOR parity but what from? I've tried getting the parity of all bytes, all payload bytes, without definitions,... but none match up with the checksum in the file.

  21. #696
    Join Date
    Jul 2007
    Location
    Philadelphia, PA
    Posts
    5,660
    My Cars
    2005 M3 & 2004 330i
    Quote Originally Posted by revtor View Post
    I'm really sorry but I don't know yet. It is almost certainly a simple XOR parity but what from? I've tried getting the parity of all bytes, all payload bytes, without definitions,... but none match up with the checksum in the file.
    I was messing with E39ZST.K00 (my rambling thoughts here and here) and for the entries I was adding, I found XORing all the bytes together and then XORing that result with 8 did the trick. However, it only appeared to work with the entry I was making.

    Maybe that will help you get a little closer
    Last edited by TerraPhantm; 10-27-2015 at 02:49 AM.

  22. #697
    Join Date
    Nov 2007
    Location
    Belgium
    Posts
    2,484
    My Cars
    Made in Germany
    Quote Originally Posted by TerraPhantm View Post
    I was messing with E39ZST.K00 (my rambling thoughts here and here) and for the entries I was adding, I found XORing all the bytes together and then XORing that result with 8 did the trick. However, it only appeared to work with the entry I was making.
    I don't think we're talking about the same. I just read your posts and it seems you want to calculate the line checksum. That's simple: It's just a plain XOR of all bytes in the line. In fact, I wonder why you are trying to edit the binary files directly. NCS Dummy can disassemble these binary files to text files. You can then make your changes in the disassembled "E39ZST.K00" just as easy as in the (plain text) "E39ZST.000". The syntax is slightly different but it's perfectly understandable. Once you are ready, use NCS Dummy again to reassemble the modified file. NCS Dummy will take care of all line checksums. No need to mess directly with binary data!

    Here's an excerpt from your "E39ZST.000" file:

    Code:
    H DR63 V1199 5D630000 000108800E024410 0000000801 1 TOUR M62B44 TU AUT LL US //540iA TÜ Touring US
    H DR63 V0900 5D630000 000108800E024410 0000000001 1 TOUR M62B44 TU AUT LL US //540iA TÜ Touring US
    DR63         5D630000 00010C900E024410 0000000001 1 TOUR M62B44 TU AUT LL US //540iA TÜ Touring US (09/98)
    And here's what the disassembled "E39ZST.K00" looks like:

    Code:
    HISTORIE : "DR63" V "1199" 5D630000 000108800E024410 0000000801 1 (002C,00B1,0110,0004,0023,0008) // TOUR,M62B44,TU,AUT,LL,US // 540iA TÜ Touring US
    HISTORIE : "DR63" V "0900" 5D630000 000108800E024410 0000000001 1 (002C,00B1,0110,0004,0023,0008) // TOUR,M62B44,TU,AUT,LL,US // 540iA TÜ Touring US
    MONTAGEAUFTRAG : "DR63" 5D630000 00010C900E024410 0000000001 1 (002C,00B1,0110,0004,0023,0008) // TOUR,M62B44,TU,AUT,LL,US // 540iA TÜ Touring US (09/98)
    Everything behind the // are comments inserted by NCS Dummy. You do not have to change these - they are ignored on re-assembly. You do have to look up the order option codes in the "SWTASW01.DAT" file because NCS Dummy does not yet automatically convert things like "TOUR" to 002C.

    The only thing not yet covered is the file checksum. And that's what flashdaemon is referring to. If you open the (plain text) "E39ZST.000" you will find an entry like "C C6" at the very end of the file. That's the file checksum. For the (plain text) *ZST.000 and *ZST.M00 files NCS Dummy can already recalculate the file checksum (use "ZST file to update checksum" on the "Disassembly and Checksums" tab). The problem is with the binary *ZST.K00 and *AT.K00 files. They have a file checksum too ("CHECKSUMME" at the end of the disassembled files) and until now I haven't found a way to calculate it. If you had success modifying "E39ZST.K00" without updating this file checksum, maybe it's not used by NCS Expert?

  23. #698
    Join Date
    Jul 2007
    Location
    Philadelphia, PA
    Posts
    5,660
    My Cars
    2005 M3 & 2004 330i
    I wasn't aware NCS dummy could edit those at the time. And odd, a simple XOR was the first thing I tried.

    NCS Expert only appears to care about the check digit for each line; it doesn't seem to care about the file checksum, at least for ZCS based cars. I only ever got errors for new entries with incorrect checksums.

    That said, the "ZEKO_ZCS" software does seem to validate the checksum. So apparently someone figured it out

  24. #699
    Join Date
    Nov 2007
    Location
    Belgium
    Posts
    2,484
    My Cars
    Made in Germany
    A new version has been released: NCS Dummy 0.6.0.5! Refer to the first post in this topic for the download link. What's new since the last release?

    0.6.0.5 (2015-11-21)

    • Fixed bug in assembly tool. The "BESTELLUNG", "KUNDENDIENST", "ZEIT" and "ZEITALT" fields in *AT.K00 files were not processed correctly.
    • Added file name prediction for opening disassembled DATEN files.
    • Added most recently used files to all "Browse..." button dropdown menus on the "Modules and Traces" and "Disassembly and Checksums" tabs and to the NCS Expert DATEN folder on the "Options" tab.
    • Added support for searching on whole words for order options in the find window.
    • Added warning when exporting to a FSW/PSW trace file if changes have been made that cannot be represented in the FSW/PSW format.
    • Added HEX trace viewer to display the hexadecimal layout of nettodata trace files.
    • Restored compatibility with Microsoft Windows 2000. Unsupported. May break again in the future.

    This release fixes a bug in the assembly tool and brings a few small changes that should make NCS Dummy even more user-friendly.

    One of the new features is the ability to load recently used files for most "Browse..." buttons in NCS Dummy. Up to 10 files are remembered. Just open the "Browse..." button dropdown menu (or right-click the button) and select "Load Recent".

    Another small improvement can be found in the Find window that now supports searching on exact words for the order options. This allows you to search on, for example, order option "EWS" while ignoring order options like "EWS_CAN".

    Also new is the HEX trace viewer: Normally NCS Dummy is always used in conjunction with NCS Expert to recode modules but in some cases it might be necessary to program the module's EEPROM directly with special tools. NCS Dummy now features a HEX trace viewer which provides a hexadecimal overview of the module's coding memory. This may come in handy when working with EEPROMs. The HEX trace viewer can be opened from the "Export Nettodata" dropdown menu or by pressing CTRL+H when a nettodata trace file is loaded.



    Lastly, NCS Dummy is now compatible again with Windows 2000. Yes, apparently some people are still using Windows 2000! Officially Windows 2000 does not support the Microsoft .NET Framework 3.5 or later, but you can make NCS Dummy work by using the latest available .NET Framework 2.0 for Windows 2000 and copying over System.Core.dll from a .NET Framework 3.5 installation into the same folder as NcsDummy.exe. Please note this is unsupported and may break again in the future.
    Last edited by revtor; 11-23-2015 at 02:25 AM.

  25. #700
    Join Date
    Nov 2015
    Location
    UK
    Posts
    1
    My Cars
    2003 BMW E46 SL Saloon
    Hi,I can anyone provide me with a dummy's step by step guide on how to recode the Business Radio in an E46 to enable the AUX input. I have NCS Dummy and can connect to the car. But when I try to filter using "aux" nothing appears in any modules. I'm guessing it needs adding, but which module? There seems to be a few for the radio. Be gentle, this is the first time I'm dipping my toes into coding any car.

    Ive searched and found a few forum posts, but they all seem to be very sketchy on details about modules etc.

    TIA.

Page 28 of 43 FirstFirst ... 3181920212223242526272829303132333435363738 ... LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •