日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

請求判斷相關

本文為您介紹請求判斷相關函數的語法、參數、示例和返回值。

server_addr

使用server_addr返回接收了當前請求的服務器地址,函數的詳細信息見下表。

項目

描述

語法

server_addr()

參數

示例

s_addr = server_addr()
say(concat('s_addr:', s_addr))

返回值

返回服務器地址,返回值為字符串類型。

server_port

使用server_port返回接收了當前請求的服務器端口,函數的詳細信息見下表。

項目

描述

語法

server_port()

參數

示例

s_addr = server_addr()
say(concat('s_addr:', s_addr))

返回值

返回服務器端口,返回值為數字類型。

client_addr

重要

風險提示:因運營商網絡NAT策略導致客戶端地址被修改,或者IP不在CDN地址庫的情況下,會影響該接口真實的返回值,請謹慎使用。

使用client_addr返回客戶端IP地址,函數的詳細信息見下表。

項目

描述

語法

client_addr()

參數

示例

c_addr = client_addr()
c_port = client_port()
say(concat('c_addr:', c_addr))
say(concat('c_port:', tostring(c_port)))

返回值

返回客戶端IP地址,返回值為字符串類型。

client_port

使用client_port返回客戶端的端口,函數的詳細信息見下表。

項目

描述

語法

client_port()

參數

示例

c_addr = client_addr()
c_port = client_port()
say(concat('c_addr:', c_addr))
say(concat('c_port:', tostring(c_port)))

返回值

返回客戶端的端口,返回值為數字類型。

client_country

重要

風險提示:因運營商網絡NAT策略導致客戶端地址被修改,或者IP不在CDN地址庫的情況下,會影響該接口真實的返回值,請謹慎使用。

使用client_country返回客戶端IP的國家和地區代碼,函數的詳細信息見下表。

項目

描述

語法

client_country()

參數

示例

c_country = client_country()
c_region = client_region()
c_city = client_city()
c_isp = client_isp()
if c_country {
    say(concat('client_country:', c_country))
}
if c_region {
    say(concat('client_region:', c_region))
}
if c_city { 
    say(concat('client_city:', c_city)) 
}
if c_isp {
    say(concat('client_isp:', c_isp))
}

返回值

返回客戶端IP的國家和地區代碼,返回值為字符串類型。國家和地區代碼信息,請參見國家編碼表

client_region

重要

風險提示:因運營商網絡NAT策略導致客戶端地址被修改,或者IP不在CDN地址庫的情況下,會影響該接口真實的返回值,請謹慎使用。

使用client_region返回客戶端的地區編碼,函數的詳細信息見下表。

項目

描述

語法

client_region()

參數

示例

c_country = client_country()
c_region = client_region()
c_city = client_city()
c_isp = client_isp()
if c_country {
    say(concat('client_country:', c_country))
}
if c_region {
    say(concat('client_region:', c_region))
}
if c_city { 
    say(concat('client_city:', c_city)) 
}
if c_isp {
    say(concat('client_isp:', c_isp))
}

返回值

返回客戶端的地區編碼,返回值為字符串類型。地區編碼信息,請參見地區編碼表

client_isp

重要

風險提示:因運營商網絡NAT策略導致客戶端地址被修改,或者IP不在CDN地址庫的情況下,會影響該接口真實的返回值,請謹慎使用。

使用client_isp返回客戶端的運營商編碼,函數的詳細信息見下表。

項目

描述

語法

client_isp()

參數

示例

c_country = client_country()
c_region = client_region()
c_city = client_city()
c_isp = client_isp()
if c_country {
    say(concat('client_country:', c_country))
}
if c_region {
    say(concat('client_region:', c_region))
}
if c_city { 
    say(concat('client_city:', c_city)) 
}
if c_isp {
    say(concat('client_isp:', c_isp))
}

返回值

返回客戶端的運營商編碼,返回值為字符串類型。運營商編碼信息,請參見運營商編碼表

ip_region

重要

風險提示:因運營商網絡NAT策略導致客戶端地址被修改,或者IP不在CDN地址庫的情況下,會影響該接口真實的返回值,請謹慎使用。

使用ip_region返回指定IP的地區(省市)編碼,函數的詳細信息見下表。

項目

描述

語法

ip_region(ipaddr)

參數

ipaddr:點分十進制的IP字符串。

示例

c_country = ip_country('192.168.0.1')
c_region = ip_region('192.168.0.1')
c_city = ip_city('192.168.0.1')
c_isp = ip_isp('192.168.0.1')
if c_country {
    say(concat('ip_country:', c_country))
}
if c_region {
    say(concat('ip_region:', c_region))
}
if c_city {
    say(concat('ip_city:', c_city))
}
if c_isp {
    say(concat('ip_isp:', c_isp))
}

返回值

返回指定IP的地區(省市)編碼,返回值為字符串類型。地區編碼信息,請參見地區編碼表

ip_isp

重要

風險提示:因運營商網絡NAT策略導致客戶端地址被修改,或者IP不在CDN地址庫的情況下,會影響該接口真實的返回值,請謹慎使用。

使用ip_isp返回指定IP的運營商編碼,函數的詳細信息見下表。

項目

描述

語法

ip_isp(ipaddr)

參數

ipaddr:點分十進制的IP字符串。

示例

c_country = ip_country('192.168.0.1')
c_region = ip_region('192.168.0.1')
c_city = ip_city('192.168.0.1')
c_isp = ip_isp('192.168.0.1')
if c_country {
    say(concat('ip_country:', c_country))
}
if c_region {
    say(concat('ip_region:', c_region))
}
if c_city {
    say(concat('ip_city:', c_city))
}
if c_isp {
    say(concat('ip_isp:', c_isp))
}

返回值

返回指定IP的運營商編碼,返回值為字符串類型。運營商編碼信息,請參見運營商編碼表

req_uri

req_uri函數的說明如下:

  • 如果無pattern參數,則返回請求URI,不包含參數部分。

  • 如果有pattern參數,則針對請求URI進行匹配判斷。

函數的詳細信息見下表。

項目

描述

語法

req_uri([pattern])

參數

pattern:使用該參數進行匹配,支持以下兩種模式。

  • 簡單匹配:相等判斷,默認為簡單匹配。

  • 正則匹配:re:前導的正則表達式。

示例

# req_uri
say(concat('req_uri: ', req_uri()))
if req_uri('/path1/path2') {
    say('req_uri: plain match')
}
if req_uri('re:/path[0-9]/path[0-9]') {
    say('req_uri: regex match')
}

返回值

  • 無pattern參數,返回請求URI。返回值為字符串類型。

  • 有pattern參數,返回true,表示匹配成功;返回false,表示匹配失敗。

本示例的返回值如下:

請求:/path1/path2?mode=ip   
響應:
req_uri: /path1/path2
req_uri: plain match
req_uri: regex match

req_uri_basename

req_uri_basename函數的說明如下:

  • 如果無pattern參數,則返回請求URI中的文件名部分。

  • 如果有pattern參數,則針對請求URI中的文件名部分進行匹配判斷。

文件名部分示例如下:

  • 示例1:對于/document_detail/30360.html,文件名部分為30360。

  • 示例2:對于/M604/guopei_mp4/ZYJY2017BJGL0101/2-1_g.mp4,文件名部分為2-1_g。

  • 示例3:對于/tarball/foo.tar.bz2,文件名部分為foo。

函數的詳細信息見下表。

項目

描述

語法

req_uri_basename([pattern])

參數

pattern:使用該參數進行匹配,支持以下兩種模式。

  • 簡單匹配:相等判斷,默認為簡單匹配。

  • 正則匹配:re:前導的正則表達式。

示例

# req_uri_basename
basename = req_uri_basename()
say(concat('req_uri_basename: ', basename, ' ', len(basename)))
if req_uri_basename('foo') {
    say('req_uri_basename: plain match')
}
if req_uri_basename('re:^f.*') {
    say('req_uri_basename: regex match')
}

返回值

  • 無pattern參數,返回請求URI中的文件名部分。返回值為字符串類型。

  • 有pattern參數,返回true,表示匹配成功;返回false,表示匹配失敗。

本示例的返回值如下:

請求:/path1/path2/foo.tar.bz2
響應:
req_uri_basename: foo 3
req_uri_basename: plain match
req_uri_basename: regex match

req_uri_ext

req_uri_ext函數的說明如下:

  • 如果無pattern參數,則返回請求URI中的擴展名部分。

  • 如果有pattern參數,則針對請求URI中的擴展名部分進行匹配判斷。

擴展名部分示例如下:

  • 示例1:對于/document_detail/30360.html,擴展名部分為.html。

  • 示例2:對于/M604/guopei_mp4/ZYJY2017BJGL0101/2-1_g.mp4,擴展名部分為.mp4。

  • 示例3:對于/tarball/foo.tar.bz2,擴展名部分為.tar.bz2。

函數的詳細信息見下表。

項目

描述

語法

req_uri_ext([pattern])

參數

pattern:使用該參數進行匹配,支持以下兩種模式。

  • 簡單匹配:相等判斷,默認為簡單匹配。

  • 正則匹配:re:前導的正則表達式。

示例

# req_uri_ext
ext = req_uri_ext()
say(concat('req_uri_ext: ', ext, ' ', len(ext)))
if req_uri_ext('.tar.bz2') {
    say('req_uri_ext: plain match')
}
if req_uri_ext('re:\.tar\.bz[0-2]') {
    say('req_uri_ext: regex match')
}

返回值

  • 無pattern參數,返回請求URI中的擴展名部分。返回值為字符串類型。

  • 有pattern參數,返回true,表示匹配成功;返回false,表示匹配失敗。

本示例的返回值如下:

請求:/path1/path2/foo.tar.bz2
響應:
req_uri_ext: .tar.bz2 8
req_uri_ext: plain match
req_uri_ext: regex match

req_uri_seg

req_uri_seg函數的說明如下:

  • 使用正斜線(/)對uri進行分隔并返回所有段落。

    • 如果無idx參數,返回所有段落。

    • 如果有idx參數,返回指定索引后的所有段落,包含對應的索引。

  • 段落索引:段落索引從頭部遞增,依次從左向右。

  • 段落上限:段落上限為128個字符,超出上限的段落會被丟棄。

函數的詳細信息見下表。

項目

描述

語法

req_uri_seg([idx])

參數

idx(可選參數):允許指定起始索引。

示例

# req_uri_seg
def echo_each(k, v, u) {
    say(concat(get(u, 'msg'), ' : segs[', k, ']=', v))
}
# fetch all segments
segs = req_uri_seg()
foreach(segs, echo_each, ['msg'='req_uri_seg()'])
# fetch segments from idx 3
segs = req_uri_seg(3)
if get(segs, 3) {
    say(concat('req_uri_seg(3): segs[3]=', get(segs, 3)))
}
if get(segs, 4) {
    say(concat('req_uri_seg(3): segs[4]=', get(segs, 4)))
}
if get(segs, 5) {
    say(concat('req_uri_seg(3): segs[5]=', get(segs, 5)))
}

返回值

返回值為字典類型,包含相應段落。

說明

從返回字典中獲取指定索引段落時,必須判斷是否為空。

本示例的返回值如下:

請求:/path1/path2/path3/path4?mode=req2
響應:
req_uri_seg() : segs[1]=path1
req_uri_seg() : segs[2]=path2
req_uri_seg() : segs[3]=path3
req_uri_seg() : segs[4]=path4
req_uri_seg(3): segs[3]=path3
req_uri_seg(3): segs[4]=path4

req_uri_arg

使用req_uri_arg默認返回指定參數的值,如果有pattern參數,則對指定參數的值進行匹配判斷,函數的詳細信息見下表。

項目

描述

語法

req_uri_arg(name, [pattern])

參數

  • name:參數名稱。

  • pattern:使用該參數進行匹配,支持以下兩種模式。

    • 簡單匹配:相等判斷,默認為簡單匹配。

    • 正則匹配:re:前導的正則表達式。

示例

# req_uri_arg
uid = req_uri_arg('uid')
if uid {
    say(concat('found uid ', uid))
} else {
    say('not found uid')
}
uid_chk = req_uri_arg('uid', '058334')
if uid_chk {
    say('check uid ok. plain mode')
} else {
    say('check uid fail. plain mode')
}
uid_chk = req_uri_arg('uid', 're:[0-9]+')
if uid_chk {
    say('check uid ok. regex mode')
} else {
    say('check uid fail. regex mode')
}

返回值

  • 如果無pattern參數

    • 參數存在:返回name指定參數的字符串值。

    • 參數不存在:返回false。

  • 如果有pattern參數

    • 參數存在:進行匹配,返回true,表示匹配成功;返回false,表示匹配失敗。

    • 參數不存在:返回false。

本示例的返回值如下:

請求:/path1/path2/path3/path4?mode=req4&uid
響應:
not found uid
check uid fail. plain mode
check uid fail. regex mode

請求:/path1/path2/path3/path4?mode=req4&uid=
響應:
found uid
check uid fail. plain mode
check uid fail. regex mode

請求:/path1/path2/path3/path4?mode=req4&uid=12345
響應:
found uid 12345
check uid fail. plain mode
check uid ok. regex mode

req_uri_query_string

req_uri_query_string函數的說明如下:

  • 如果無pattern參數,則返回請求中的參數部分,不包含問號(?)。

  • 如果有pattern參數,則針對請求中的參數部分進行匹配判斷。

函數的詳細信息見下表。

項目

描述

語法

req_uri_query_string([pattern])

參數

pattern:使用該參數進行匹配,支持以下兩種模式。

  • 簡單匹配:相等判斷,默認為簡單匹配。

  • 正則匹配:re:前導的正則表達式。

示例

# req_uri_query_string
say(concat('req_uri_query_string: ', req_uri_query_string()))
if req_uri_query_string('mode=') {
    say('check uri query string ok. plain mode')
} else {
    say('check uri query string fail. plain mode')
}
if req_uri_query_string('re:mode=[0-9a-z]+') {
    say('check uri query string ok. regex mode')
} else {
    say('check uri query string fail. regex mode')
}

返回值

  • 無pattern參數,返回請求中的參數部分。返回值為字符串類型。

  • 有pattern參數,返回true,表示匹配成功;返回false,表示匹配失敗。

本示例的返回值如下:

請求:/path1/path2/path3/path4?mode=req5&token=34Deasd#243
響應:
req_uri_query_string: mode=req5&token=34Deasd
check uri query string fail. plain mode
check uri query string ok. regex mode

req_scheme

req_scheme函數的說明如下:

  • 如果無pattern參數,則返回請求scheme。

  • 如果有pattern參數,則針對請求scheme進行匹配判斷。

函數的詳細信息見下表。

項目

描述

語法

req_scheme([pattern])

參數

pattern:使用該參數進行匹配,支持以下兩種模式。

  • 簡單匹配:相等判斷,默認為簡單匹配。

  • 正則匹配:re:前導的正則表達式。

示例

# req_scheme
say(concat('req_scheme: ', req_scheme()))
if req_scheme('https') {
    say('check scheme ok. plain mode')
} else {
    say('check scheme fail. plain mode')
}
if req_scheme('re:https?') {
    say('check scheme ok. regex mode')
} else {
    say('check scheme fail. regex mode')
}

返回值

  • 無pattern參數,返回請求scheme。返回值為字符串類型。

  • 有pattern參數,返回true,表示匹配成功;返回false,表示匹配失敗。

本示例的返回值如下:

請求:http://xx..
req_scheme: http
check scheme fail. plain mode
check scheme ok. regex mode

req_method

req_method函數的說明如下:

  • 如果無pattern參數,則返回請求method。

  • 如果有pattern參數,則針對請求method進行匹配判斷。

函數的詳細信息見下表。

項目

描述

語法

req_method([pattern])

參數

pattern:使用該參數進行匹配,支持以下兩種模式。

  • 簡單匹配:相等判斷,默認為簡單匹配。

  • 正則匹配:re:前導的正則表達式。

示例

# req_method
say(concat('req_method: ', req_method()))
if req_method('GET') {
    say('check method ok. plain mode')
} else {
    say('check method fail. plain mode')
}
if req_method('re:(GET|POST)') {
    say('check method ok. regex mode')
} else {
    say('check method fail. regex mode')
}

返回值

  • 無pattern參數,返回請求method。返回值為字符串類型。

  • 有pattern參數,返回true,表示匹配成功;返回false,表示匹配失敗。

本示例的返回值如下:

請求:POST /xxxx/xxx
響應:
req_method: POST
check method fail. plain mode
check method ok. regex mode

req_host

req_host函數的說明如下:

  • 如果無pattern參數,則返回請求頭Host的值。

  • 如果有pattern參數,則針對請求頭Host的值進行匹配判斷。

函數的詳細信息見下表。

項目

描述

語法

req_host([pattern])

參數

pattern:使用該參數進行匹配,支持以下兩種模式。

  • 簡單匹配:相等判斷,默認為簡單匹配。

  • 正則匹配:re:前導的正則表達式。

示例

# req_host
say(concat('req_host: ', req_host()))
if req_host('image.developer.aliyundoc.com') {
    say('check host ok. plain mode')
} else {
    say('check host fail. plain mode')
}
if req_host('re:.+\.y\.z\.com') {
    say('check host ok. regex mode')
} else {
    say('check host fail. regex mode')
}

返回值

  • 無pattern參數,返回請求頭Host的值。返回值為字符串類型。

  • 有pattern參數,返回true,表示匹配成功;返回false,表示匹配失敗。

本示例的返回值如下:

請求:Host: image.developer.aliyundoc.com
響應:
req_host: image.developer.aliyundoc.com
check host fail. plain mode
check host ok. regex mode

req_user_agent

req_user_agent函數的說明如下:

  • 如果無pattern參數,則返回請求頭User-Agent的值。

  • 如果有pattern參數,則針對請求頭User-Agent的值進行匹配判斷。

函數的詳細信息見下表。

項目

描述

語法

req_user_agent([pattern])

參數

pattern:使用該參數進行匹配,支持以下兩種模式。

  • 簡單匹配:相等判斷,默認為簡單匹配。

  • 正則匹配:re:前導的正則表達式。

示例

# req_user_agent
say(concat('req_user_agent: ', req_user_agent()))
if req_user_agent('Mozilla') {
    say('check user_agent ok. plain mode')
} else {
    say('check user_agent fail. plain mode')
}
if req_user_agent('re:^Mozilla') {
    say('check user_agent ok. regex mode')
} else {
    say('check user_agent fail. regex mode')
}

返回值

  • 無pattern參數,返回請求頭User-Agent的值。返回值為字符串類型。

  • 有pattern參數,返回true,表示匹配成功;返回false,表示匹配失敗。

本示例的返回值如下:

請求:User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
響應:
req_user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
check user_agent fail. plain mode
check user_agent ok. regex mode

req_referer

req_referer函數的說明如下:

  • 如果無pattern參數,則返回請求頭Referer的值。

  • 如果有pattern參數,則針對請求頭Referer的值進行匹配判斷。

函數的詳細信息見下表。

項目

描述

語法

req_referer([pattern])

參數

pattern:使用該參數進行匹配,支持以下兩種模式。

  • 簡單匹配:相等判斷,默認為簡單匹配。

  • 正則匹配:re:前導的正則表達式。

示例

# req_referer
say(concat('req_referer: ', req_referer()))
if req_referer('https://example.aliyundoc.com/******00003') {
    say('check referer ok. plain mode')
} else {
    say('check referer fail. plain mode')
}
if req_referer('re:https://foo\.bar\.cn/\*+[0-9]+') {
    say('check referer ok. regex mode')
} else {
    say('check referer fail. regex mode')
}

返回值

  • 無pattern參數,返回請求頭Referer的值。返回值為字符串類型。

  • 有pattern參數,返回true,表示匹配成功;返回false,表示匹配失敗。

本示例的返回值如下:

請求:Referer: https://example.aliyundoc.com/******00003
響應:
req_referer: https://example.aliyundoc.com/******00003
check referer ok. plain mode
check referer fail. regex mode

req_cookie

使用req_cookie默認返回指定cookie的值,如果有pattern參數,則對指定cookie的值進行匹配判斷,函數的詳細信息見下表。

項目

描述

語法

req_cookie(name, [pattern])

參數

  • name:cookie名稱。

  • pattern:使用該參數進行匹配,支持以下兩種模式。

    • 簡單匹配:相等判斷,默認為簡單匹配。

    • 正則匹配:re:前導的正則表達式。

示例

# req_cookie
uid = req_cookie('uid')
if uid {
    say(concat('found cookie uid ', uid))
} else {
    say('not found cookie uid')
}
uid_chk = req_cookie('uid', '058334')
if uid_chk {
    say('check cookie uid ok. plain mode')
} else {
    say('check cookie uid fail. plain mode')
}
uid_chk = req_cookie('uid', 're:^[0-9]+')
if uid_chk {
    say('check cookie uid ok. regex mode')
} else {
    say('check cookie uid fail. regex mode')
}

返回值

  • 如果無pattern參數

    • 參數存在:返回name指定cookie的字符串值。

    • 參數不存在:返回false。

  • 如果有pattern參數

    • 參數存在:進行匹配,返回true,表示匹配成功;返回false,表示匹配失敗。

    • 參數不存在:返回false。

本示例的返回值如下:

請求:Cookie: uid=123456; token=value2
響應:
found cookie uid 123456
check cookie uid fail. plain mode
check cookie uid ok. regex mode

req_first_x_forwarded

req_first_x_forwarded函數的說明如下:

  • 如果無pattern參數,則返回請求頭X-Forwarded-For中的第一個地址。

  • 如果有pattern參數,則針對請求頭X-Forwarded-For中的第一個地址進行匹配判斷。

函數的詳細信息見下表。

項目

描述

語法

req_first_x_forwarded_addr([pattern])

參數

pattern:使用該參數進行匹配,支持以下兩種模式。

  • 簡單匹配:相等判斷,默認為簡單匹配。

  • 正則匹配:re:前導的正則表達式。

示例

# req_first_x_forwarded
say(concat('req_first_x_forwarded: ', req_first_x_forwarded()))
if req_first_x_forwarded('1.1.1.1') {
    say('check first_x_forwarded ok. plain mode')
} else {
    say('check first_x_forwarded fail. plain mode')
}
if req_first_x_forwarded('re:1.1.1.[0-9]') {
    say('check first_x_forwarded ok. regex mode')
} else {
    say('check first_x_forwarded fail. regex mode')
}

返回值

  • 無pattern參數,返回請求頭X-Forwarded-For中的第一個地址。返回值為字符串類型。

  • 有pattern參數,返回true,表示匹配成功;返回false,表示匹配失敗。

本示例的返回值如下:

請求:X-Forwarded-For: 1.1.1.1, 10.10.10.10, 172.16.0.1
響應:
req_first_x_forwarded: 1.1.1.1
check first_x_forwarded ok. plain mode
check first_x_forwarded ok. regex mode

req_header

使用req_header默認返回指定請求頭的值,如果有pattern參數,則對指定請求頭的值進行匹配判斷。函數的詳細信息見下表。

項目

描述

語法

req_header(name, [pattern])

參數

  • name:請求頭名稱。

    請求頭名稱中出現的短劃線(-),需要使用下劃線(_)替代。例如:X-USER-ID對應為x_user_id。

  • pattern:使用該參數進行匹配,支持以下兩種模式。

    • 簡單匹配:相等判斷,默認為簡單匹配。

    • 正則匹配:re:前導的正則表達式。

示例

# req_header
uid = req_header('x_uid')
if uid {
    say(concat('found header x-uid ', uid))
} else {
    say('not found header x-uid')
}
uid_chk = req_header('x_uid', 'es developer')
if uid_chk {
    say('check header x-uid ok. plain mode')
} else {
    say('check header x-uid fail. plain mode')
}
uid_chk = req_header('x_uid', 're:es [a-z]+')
if uid_chk {
    say('check header x-uid ok. regex mode')
} else {
    say('check header x-uid fail. regex mode')
}

返回值

  • 如果無pattern參數

    • 參數存在:返回name指定請求頭的字符串值。

    • 參數不存在:返回false。

  • 如果有pattern參數

    • 參數存在:進行匹配,返回true,表示匹配成功;返回false,表示匹配失敗。

    • 參數不存在:返回false。

本示例的返回值如下:

請求:X-UID: es developer
響應:
found header x-uid es developer
check header x-uid ok. plain mode
check header x-uid ok. regex mode

req_id

使用req_id獲取每個請求唯一的標識(EagleeyeID),用于標識對應的請求。函數的詳細信息見下表。

項目

描述

語法

req_id()

參數

示例

# req_id
say(concat('req_id: ', req_id()))

返回值

返回字符串類型的請求ID。本示例的返回值為req_id: 6451c43d15815890089411000e