hi, am getting this error for lsl code below, can you fix? (130,4) Error CS0103: The name 'llLinksetDataDeleteProtected' does not exist in the current context (135,16): Error CS0103: The name 11LinksetDataWrite Protected' does not exist in the current cont... , 
integer     APP                 = 56942456;
// ///////////////////////////////////////////////////////////////////
// CONSTANTS
// ///////////////////////////////////////////////////////////////////
float       PARTICLE_TIME       = 10.0;
float       s_VOLUME            = 1.0;
string      DBPASSWORD          = "sd9523fd+e&cewqQ";
string      NOTECARD_NAME       = "Settings";
string      HANDS               = "second hand";
integer     DIALOG_TIME         = 30;

list        t_PARTICLES         = [ 
                                        "9f602fc3-5132-4d92-978b-dcbe9d4ade81", 
                                        "64597ea8-0501-442d-a607-a2c9867845bc",
                                        "a5b153d3-e77d-46e3-b271-270d5000237b",
                                        "996c639b-9b59-490d-bf93-5cf562b7e9d4",
                                        "d11f626e-2d39-4e29-b031-854665f174a2",
                                        "8e3327e2-6117-4b68-b3b7-0fc6cab983f5"
                                  ];

key         s_CHIME             = "b087dd8e-a09e-41be-869e-31d489ee0b83";
key         s_TICK              = "4046a28e-7692-4ac0-90de-d06b59edf6b0";
// ///////////////////////////////////////////////////////////////////
// VARIABLES
// ///////////////////////////////////////////////////////////////////
key         gDialogUser         = NULL_KEY;
integer     gParticles          = TRUE;
list        gHands              = [ ];

vector      gHandStep;
key         gNoteQueryID;
integer     gNotecardLine;
list        gNoteList;
integer     gChannel;
integer     gListener;
integer     gDialogTimeUp;
integer     gPlay;

// ///////////////////////////////////////////////////////////////////
// FUNCTIONS
// ///////////////////////////////////////////////////////////////////
particles( integer stat )
{
    list        particle_params     = [
                                        PSYS_SRC_PATTERN,                   PSYS_SRC_PATTERN_EXPLODE,
                                        PSYS_SRC_BURST_RADIUS,              2,
                                        PSYS_SRC_ANGLE_BEGIN,               0,
                                        PSYS_SRC_ANGLE_END,                 0,
                                        PSYS_SRC_TARGET_KEY,                llGetKey( ),
                                        PSYS_PART_START_COLOR,              <1.000000,1.000000,1.000000>,
                                        PSYS_PART_END_COLOR,                <1.000000,1.000000,1.000000>,
                                        PSYS_PART_START_ALPHA,              1,
                                        PSYS_PART_END_ALPHA,                0.5,
                                        PSYS_PART_START_GLOW,               0.2,
                                        PSYS_PART_END_GLOW,                 0,
                                        PSYS_PART_BLEND_FUNC_SOURCE,        PSYS_PART_BF_SOURCE_ALPHA,
                                        PSYS_PART_BLEND_FUNC_DEST,          PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA,
                                        PSYS_PART_START_SCALE,              <2.000000,2.000000,0.000000>,
                                        PSYS_PART_END_SCALE,                <3.000000,3.000000,0.000000>,
                                        PSYS_SRC_MAX_AGE,                   PARTICLE_TIME,
                                        PSYS_PART_MAX_AGE,                  10,
                                        PSYS_SRC_BURST_RATE,                0.5,
                                        PSYS_SRC_BURST_PART_COUNT,          1,
                                        PSYS_SRC_ACCEL,                     <0.000000,0.000000,0.000000>,
                                        PSYS_SRC_OMEGA,                     <0.000000,0.000000,0.000000>,
                                        PSYS_SRC_BURST_SPEED_MIN,           0.1,
                                        PSYS_SRC_BURST_SPEED_MAX,           1,
                                        PSYS_PART_FLAGS,                    0
                                                                            | PSYS_PART_INTERP_COLOR_MASK 
                                                                            | PSYS_PART_INTERP_SCALE_MASK
    ];

    list        textures            = llListRandomize( t_PARTICLES, 1 );
    integer     count               = llGetListLength( gHands );
    integer     i;
    do
    {
        integer     lLink       = llList2Integer( gHands, i * 2);
        list        particles   = [  ];
        if( stat )
                    particles   = particle_params + [ PSYS_SRC_TEXTURE, llList2Key( textures, i ) ];
        llLinkParticleSystem( lLink, particles );
        i++;
    }
    while ( i < count );
}

load_hands( )
{
    integer     count   = llGetNumberOfPrims( );
    integer     i;
    gHands              = [ ];
    do
    {
        string      name    = llGetLinkName( i );
        if( name == HANDS )
        {
            rotation    hRot    = llList2Rot( llGetLinkPrimitiveParams( i, [ PRIM_ROTATION ] ), 0 );
            gHands += [ i, hRot ];
        }
    }
    while ( ++i <= count );
}

hand( float time )
{
    vector      rot         = gHandStep * time;
    integer     count       = llGetListLength( gHands );
    integer     i;
    list        params      = [ ];
    do
    {
        integer     lLink   = llList2Integer( gHands, i );
        rotation    lRot    = llList2Rot( gHands, i + 1 );
        rotation    offset  = llEuler2Rot( rot * lRot );
        params             += [ PRIM_LINK_TARGET, lLink, PRIM_ROT_LOCAL, lRot / offset ];
        i                  += 2;
    }
    while ( i < count );
    llSetLinkPrimitiveParamsFast( LINK_SET, params );
}

integer channel( key ID ) 
{
    return 0x80000000 | ( (integer ) ( "0x"+( string ) ID ) ^ APP );
}

remove_key( string keyword )
{
    llLinksetDataDeleteProtected( keyword, DBPASSWORD );
}

set_key( string keyword, string value )
{
    integer r = llLinksetDataWriteProtected( keyword, value, DBPASSWORD );
    //llOwnerSay( llList2CSV( [ r, keyword ] ) );
}

string get_key( string keyword, string def_val )
{
    string      value   = llLinksetDataReadProtected( keyword, DBPASSWORD );
    if( value == "" ) return def_val;
    return value;
}

remove_uuid( )
{
    list        UUIDs       = llLinksetDataFindKeys( "^UUID:", 0, 0 );
    integer     count       = llGetListLength( UUIDs );
    integer     index;
    
    while( index < count )
    {
        remove_key( llList2String( UUIDs, index ) );
        index++;
    }
    UUIDs   = [ ];
}

reading( )
{    
    if( llGetInventoryKey( NOTECARD_NAME ) == NULL_KEY )
    {
        llOwnerSay( "Notecard " + NOTECARD_NAME + " not found." );
        return;
    }
    else if( llGetInventoryKey( NOTECARD_NAME ) == ( key ) get_key( "NOTECARD", NULL_KEY ) ) return;
    llOwnerSay( "Notecard " + NOTECARD_NAME + ": reading... please wait." );
    remove_uuid( );
    stop( );
    set_key( "NOTECARD", ( string ) llGetInventoryKey( NOTECARD_NAME ) );
    gNoteList           = [ ];
    gNotecardLine       = 0;
    gNoteQueryID        = llGetNotecardLine( NOTECARD_NAME, gNotecardLine);
}

update_list( string list_name, string value, integer uuid )
{
    string      db_list  = get_key( list_name, "" );

    if( ( key ) value )
        set_key( "UUID:" + value, list_name );
    else if( !uuid )
        set_key( llToUpper( list_name ), db_list + "~" + value );
}

init( )
{
    hand( 0.0 );
    gChannel        = channel( llGetKey( ) );
    particles( FALSE );
    llStopSound( );
    llSetTimerEvent( 1.0 );
}

stop(  )
{
    gPlay = FALSE;
    hand( 0.0 );
    particles( FALSE );
    llStopSound( );
}

menu( )
{
    llListenRemove( gListener );
    gListener       = llListen( gChannel, "", gDialogUser, "" );
    llDialog( gDialogUser, "\n\nSelect an option:\n", [ " ", "Cancel", " ", llList2String( [ "Play", "Stop" ], gPlay ), "Particles " + llList2String( [ "Off", "On" ], !gParticles ), "Reset" ], gChannel );
    gDialogTimeUp   = llGetUnixTime( ) + DIALOG_TIME; 
}
// ///////////////////////////////////////////////////////////////////
// STATES
// ///////////////////////////////////////////////////////////////////
default
{
    state_entry()
    {
        load_hands( );
        gHandStep       = < 0, 0, TWO_PI / 60 >;
        reading( );
        init(  );
    }
    on_rez( integer start_param )
    {
        init( );
    }
    dataserver( key query_id, string data )
    {
        if ( query_id == gNoteQueryID )
        {
            if ( data == EOF )
            {
                llOwnerSay( "Notecard " + NOTECARD_NAME + ": loaded." );
                llOwnerSay( llDumpList2String( [ "Free memory:", llLinksetDataAvailable( ) / 1024, "KB", "Script memory:", llGetFreeMemory( ) / 1024, "KB" ], " " ) );
                //llOwnerSay( llList2CSV( llLinksetDataListKeys( 0, 0) ) );
            }
            else
            {
                            data        = llList2String( llParseStringKeepNulls( data, [ "#", "//" ], [ ] ), 0 );
                list        key_val     = llParseString2List( data, [ "=", ":" ], [ ] );
                string      argument    = llStringTrim( llList2String( key_val, 0 ), STRING_TRIM );
                string      value       = llStringTrim( llList2String( key_val, 1 ), STRING_TRIM );

                if( argument != "" )
                {
                    if( ~llSubStringIndex( llToUpper( argument ), "LIST") && value != "" ) 
                    {
                        gNoteList       = [ llToUpper( value ), ( llSubStringIndex( argument, "UUID") >= 0 ) ];
                        remove_key( llToUpper( value ) );
                    }
                    else if( value == "" && gNoteList != [ ] )
                    {
                        update_list( llList2String( gNoteList, 0 ), argument, llList2Integer( gNoteList, 1 )  );
                    }
                    else if( argument != "" && value != "" )
                    {
                        gNoteList       = [ ];
                        set_key( llToUpper( argument ), value );
                    }
                }

                ++gNotecardLine;
                gNoteQueryID = llGetNotecardLine( NOTECARD_NAME, gNotecardLine);
            }
        }
    }
    touch_start( integer num_detected )
    {
        key         id              = llDetectedKey( 0 );
        integer     owner_only      = ( get_key( "OWNERONLY", "TRUE" ) == "TRUE" );
        integer     authorized      = ( ( get_key( "UUID:" + ( string ) id, "" ) == "AUTHORIZED" ) || id == llGetOwner( ) );
        integer     banned          = ( get_key( "UUID:" + ( string ) id, "" ) == "BANNED" );

        if( ( owner_only && authorized && !banned ) || !owner_only )
        {
            if( gDialogUser == NULL_KEY || gDialogUser == id )
            {
                gDialogUser = id;
                menu( );
            }
            else
            {
                llRegionSayTo( id, PUBLIC_CHANNEL, "secondlife:///app/agent/" + ( string ) gDialogUser + "/about is currently using the menu." );
            }
        }
    }
    listen( integer channel, string name, key id, string message )
    {
        gDialogUser = NULL_KEY;
        llListenRemove( gListener );

        if( message == "Play" )
        {
            llResetTime( );
            llSetTimerEvent( 1.0 );
            gPlay = TRUE;
            particles( FALSE );
            llStopSound( );
            llLoopSound( s_TICK, s_VOLUME );
            llShout( PUBLIC_CHANNEL, "The clock has started!" );
        }
        else if( message == "Stop" )
        {
            stop(  );
        }
        else if( message == "Reset" )
        {
            stop(  );
            llResetScript( );
        }
        else if( ~llSubStringIndex( message, "Particles" ) )
        {
            gParticles  = !gParticles;
            llRegionSayTo( id, PUBLIC_CHANNEL, "Particles has been " + llList2String( [ "disabled", "enabled" ], gParticles ) );
            if( !gParticles ) particles( FALSE );
        }
    }
    timer( )
    {
        if( gPlay )
        {
            float   time        = llGetTime( );
            integer timeUp      = ( time <= 60.0 );
                    gPlay       = timeUp;

            hand( time * timeUp );
            if( !timeUp )
            {
                if( gParticles ) particles( TRUE );
                llPlaySound( s_CHIME, s_VOLUME );
            }
        }

        if( gDialogUser != NULL_KEY && gDialogTimeUp < llGetUnixTime( ) )
        {
            llRegionSayTo( gDialogUser, PUBLIC_CHANNEL, "Dialog timed up." );
            gDialogUser = NULL_KEY;
        }
    }
    changed( integer change )
    {
        if( change & CHANGED_INVENTORY )    reading( );
        if (change & CHANGED_LINK)          load_hands( );
        if( change & CHANGED_OWNER )
        {
            llResetScript( );
        }
    }
}